IEEE 754标准浮点数转换

浮点数格式如下:
S-E-M
S:表示数符,0代表+,1代表-;
E:表示阶码,用移码表示,比如2的三次方是3+127=130=1000 0010
M:表示尾数数值
单精度32位,阶码8位;双精度64位,阶码11位。

单精度浮点数为实列,最高位是数符位,后面是8位阶码,以2为底,23位是尾数数值位,因为最高位总是1,将1隐含,实际尾数是24位的,实际尾数的有效值是1.M。

规格化的单精度浮点数真值为:
N = (-1)的s次方* 1.M * 2的E次方减127次方
规格化的双精度浮点数的真值为:
N=(-1)的s次方* 1.M*2的E次方减1023次方

本文全是算的是32位的单精度浮点小数的转换
实列:(20.59375)10进制 转浮点数
先(20.59375)10进制 = (10100.10011)2进制
将尾数规范为1.M的形式:10100.10011=1.01001001*2的4次方,因为小数点左移4位所以是2的4次方,即指数e=4
可得:M=01001001,因为把最高位隐藏了
,S=0,因为这个真值是正数,所以数符等于0,
E=4+127=131=1000 0011。
因此,32位的二进制浮点数格式:
S-E-M:
0(数符)10000011(阶码)01001001100000000000000(尾数)
尾数后面补0

在把0(数符)10000011(阶码)01001001100000000000000(尾数)转回真值:
即S=0,E=1000 0011-127=4,1.M=1.010010011(因为尾数最高位隐藏了1,所以加回来)。
浮点数N=(-1)s的次方1.M2的E-127的次方=(-1)的0次方1.0100100112的4次方=1*1.287109375(注意把这个尾数换成10进制数,在拿来乘)× 16=20.59375的十进制真值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值