作者upanddn (小管)
看板TransCSI
标题Re: 浮点数计算
时间Wed May 11 22:45:42 2005
※ 引述《deepdish (要和数学装熟..)》之铭言:
: PS:以下的解说完全按照 an overview 中译本内容
: ※ 引述《sazkj (时报鹰万岁!!!)》之铭言:
: : S C M
: : 1 1000 0001 0100 0000 0000 0000 0000 000
: : 某书曰:
: 什麽烂书拿出来鞭\./
: : S:负
: Sign bit 符号位元
: : C:
: 在 an overview 是写 exponent field 指数栏
: : (1000 0001)=129
: : Exp=129-127=2 (真实指数)
: 1000 0001 代表正 1,
: 意谓着将答案的小数点 0100 往右移一个位元
: : M:
: Mantissa field 假数栏
: : 1+M=小数部分
: : →(1.01)bin
: : 故合并後
: : -(1.01)*2^2
: : =-(101)bin
: : =- 5
: 结果为 0.100
: 也就是 1/2 的二进位形式。
: 因为符号位元为 1,表示的值为负,所以表示 - 1/2
: : 想问一:
: : C为1000 0001 若以an overview中 超16额表示法(是不是这样叫我不清楚!?)
: 不是 超额 xx 表示法(excess notation)是说
: 二进位的数值比超额表示法的数值多出 xx
: 所以这里应该是 超额 128 表示法吧
: 降的话你应该就知道上面原本你是怎麽算的了
: : 0111 1111 表示的是-1
: : 1000 0000 表示的是 0
: : 1000 0001 表示的是 1
: : 所以C的部分,真实指数应该为 1 ?!
: 没错
: : 想问二:
: : 浮点数正规化,二进制时,假数最高位应该为1
: 正规化是说
: 这是为了避免同一个值有多种表示法的可能性。
: 同时他使得所有非零的值的假数栏都会以 1 开始。
: : 为什麽题目会是0 ??
: 所以题目并不符合正规化格式
: : 又为什麽假数还要再加1??
: : (之前ASK版有版友教我说是因为溢位的问题,可是我听了还是不了解耶)
: 因为那本烂书不是 an overview
: : 想问三:
: : 原题真实指数=129-127处
: : 我的想法是
: : C=Exp+offset
: : Exp=C-offset
: : =129-128
: : =1
: : 我这样算是那边出错了?
: an overview 用的方法好像比较简单耶
: : 想问四:
: : 下面是我自己想像的算法,请各位帮我个忙
: : 告诉我那边错了@@
: : S==>1==>负
我想该书应该是指IEEE的规格吧!正规化的尾数是1.f,整数部份是隐藏位元,exp指数则갊是excess值加上真实指数 exp=exp(真实指数)+excess(IEEE规格的excess是127),该书似
乎题意未表达完全。
小弟我的算法是…
(指数范围) exp excess(2^(8-1)) exp(真实)
11111111=255 128 127
10000000=128 128 0
00000000= 0 128 -128
S E M
1 1000 0001 0100 0000 0000 0000 0000 000
负 2^(129-128) .1(正规化)
=- 0.1 bin *2^1=-1(bin)=-1(dec)
有错请指正;
顺便请教一下,推文要按什麽?orz
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.167.164.182
1F:推 sazkj:推文是大写X,shift+x 203.64.94.69 05/11
2F:推 sazkj:歹势⊙⊙题目有提到IEEE是我把他和浮点数搞混了 203.64.94.69 05/11