浮点编码与真实二进制数转换

1、浮点编码还原为真实二进制数

1.1、举例1:float型浮点数的编码形式如下,试还原为真实浮点数

规约数

0 1110 0011 0000 0000 0000 0000 0000 000(共32位)

分析步骤:

(1)判断是32位单精度还是64位双精度

float型共32位,其中符号位S占据最高位的1位,偏移指数E占据其后的8位(即w = 8),末尾有效数字段T占据最后的23位(即t =23)。

(2)判断类型

由于E所在8位不全为0,也不是全为1,所以该数是一个规约数。

(3)计算真实指数e

由于E = 1110 00112 = 227,因此,真实指数e = E - bias = 227-127 = 100

(4)计算尾数m

T = 0000 0000 0000 0000 0000 000(末尾23位全为0),但由于规约数隐含的最高有效位为1,即d0 = 1,因此,其尾数应在T的前面加上隐藏了的最高位1,因此,尾数m = 1.0000 0000 0000 0000 0000 000

(5)还原后的真实二进制数是(判断出是规约数后,也可直接使用公式还原)


1.2、举例2:float型浮点数的编码形式如下,试还原为真实浮点数

非规约数

0 0000 0000 0000 0000 0000 0000 1100 000(共32位)

分析过程:

(1)判断类型

由于E所在8位全为0,T所在23位非0,所以该数是一个非规约数。

(2)最高位0表示符号位S

(3)计算e

由于该数是非规约数,因此,e为e = emin = 0 - (2w-1 - 1) + 1 = -126

(4)计算m

由于T = 0000 0000 0000 0000 1100 000,且是非规约数,因此,尾数应在T前面加上隐藏了的最高位0,即d0 = 0,因此,尾数m = 0.0000 0000 0000 0000 1100 000

(5)还原后的真实二进制数

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值