我们在第二章里提到了一个观点是:
所有的浮点数都可以表示为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.50 10000001 00100000000000000000000 --4.5
嗯,4.5可以理解,但是0.5为什么后面全是0呢?真是奇怪了!!!
其实还有一个现象可以解释这个事情,那就是指数位的首位,4.5的是1,0.5的是0
指数位的0和1其实也代表着指数的正负,如果你能想到负指数的话大概就能够豁然开朗了。
如下:
0.5 = 1.0 * 2^-1
终章~~