深入了解浮点精度(五,小于1的浮点存储)

上一章:深入了解浮点精度(四。严格精度的浮点运算)

 

我们在第二章里提到了一个观点是:

所有的浮点数都可以表示为1.xxxx *2^N,x只能表示0和1

这个观点是正确的吗?

对于大于一 的浮点来说,完全没问题,比如4.5 = 100.1 = 1.001 * 2^2

但如果是小于1呢?

例如:0.5

额,额,额~~

然后就郁闷了,发现怎么着也转变不成1.xxxx *2^N。

不要急,我们先打印一下0.5和4.5。

0 12345678 12345678123456781234567
0  01111110  00000000000000000000000 ---0.5

0  10000001 00100000000000000000000 --4.5

嗯,4.5可以理解,但是0.5为什么后面全是0呢?真是奇怪了!!!

其实还有一个现象可以解释这个事情,那就是指数位的首位,4.5的是1,0.5的是0

指数位的0和1其实也代表着指数的正负,如果你能想到负指数的话大概就能够豁然开朗了。

如下:

0.5 = 1.0 * 2^-1

 

终章~~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值