补码表示的浮点数的规格化及示数范围

转自:补码表示的浮点数的规格化及示数范围


一、规格化

对二进制浮点数N = m x rm ^ e(rm为尾数的基),若尾数m满足1/2≤|m|<1,即尾数最高位数字为“1”,则为规格化的数。

补码来说:如果是正数,尾数的最高位为“1”;如果是负数,尾数的最高位应为“0”(即1.0x...x),或为“1”而以后各位全为“0”(即1.10...0)。前者小于-1/2,后者正好等于-1/2。

为了机器判断方便,在补码表示中,往往不把-1/2列入规格化的数。这样,补码规格化数规定如下:

对正数m ≥ 0,如果 1 > m ≥ 1/2,称为规格化数,其补码表示形式为:0.1x...x ;对负数x<0,如果 -1/2> m ≥ -1(注意:补码表示的时候可取-1),称为规格化数,其补码表示形式为:1.0x...x。 其中x表示可任取“0”或“1”。

因此,机器只要判断运算结果的符号位与第一位数字是否相同,便可知道是否是规格化的数。


二、示数范围

1个浮点数需要用以下6个参数来表示:

* 尾数的基rm。在不同的数制中,可以分别取值为 rm = 2、4、8、16、10。

* 尾数的值m。

* 尾数的长度p。p的值与尾数采用的基rm有关,p位长的尾数的rm进制数的尾数为p' = p / [ log2(rm) ]。

* 阶码的基re。一般取re = 2。

* 阶码的值e。

* 阶码的长度q。由于re = 2,因此q的值就是e的二进制数的位数。

(1)当尾数的值m采用原码表示时,规格化浮点数N的示数范围为

(rm ^ (-1)) x (rm ^ ( - re ^ q)) ≤ N ≤ (1 - rm ^ ( -p')) x (rm ^ ( re ^ q -1))

(2)当尾数的值m采用补码表示时,规格化浮点数N的示数范围在正数区间与m采用原码表示时相同,在负数区间的示数范围为

- (rm ^ (re ^ q -1)) ≤ N ≤ - (rm ^ (-1) + rm ^ (-p)) x (rm ^ ( - re ^ q))

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值