32位浮点数的一些理解

32位浮点数的一些理解

1、定点的缺点:对于一个系统可能出现一些特别大的数和特别小的数,如果用定点表示就会很僵硬,位数一定就不能同时表达特别大的数和特别小的数。

2、对于定点123.625,用科学计数法的方式可以写成1.23625*10^2,也可以写成12.625*10^1或1.111011101*2^6。。。。。为了规范,IEEE就规定了32位浮点的格式如下

https://img2018.cnblogs.com/blog/1070689/201903/1070689-20190310165139947-1347641585.png

3、翻译一下

(1)最高位是符号位,“0”代表正,“1”代表负。

(2)接下来的8位是指数位,8位可表示整数的范围是0-255,考虑指数可以是负的,IEEE规定在上面的范围减去127,并将-127(全0)和128(全1)用做特殊值处理,所以指数的位的范围是(-127,128)。

(3)最低的23位是小数位(尾数位),正常是可以表示23位的范围,但是IEEE规定小数点左侧必须为1,右侧位数不够补0。这样可以就可以省略1,可以用23位来表示24位。

eg. 1.111011101*2^6中,小数位是111011101+补14个0

4、定点转浮点实例:123.625用32位浮点表示

科学计数法=1.111011101*26(整数部分:123=01111011b,小数部分:0.625=0.101b,整数部分除2取余,倒序排列,高位补零;小数部分乘2取整,顺序排列)

符号位:0

指数位:6+127=10000101

小数位:11101110100000000000000

即:01000010111101110100000000000000=0x42F74000

5、验证:

 

6、浮点转定点实例:42F74000=01000010111101110100000000000000,拆分为符号位、指数位、小数位。

(1)符号位:0

(2)指数位:10000101=133,实际指数=133-127=6

(3)小数位:11101110100000000000000去掉后面的0、前面补1为1. 111011101

即科学计数法表示为1. 111011101*26=(2^0+2^-1+2^-2+2^-3+2^-5+2^-6+2^-7+2^-9)*2^6=123.625。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值