参考:
老大说:谁要再用double定义商品金额,就自己收拾东西走
都工作两年了,还不知道浮点数如何转二进制?
【小知识】float是如何在计算机中存储的
记录下自己的思考:
- binaryconvert 可以直接转换
binaryconvert.png- 为什么计算机的负数用二进制取补码进行表示?
比如-2,直接用原码进行表示为1 29个0 1 0,加上1,直接相加的话就变成 1 29个0 1 1,结果变成-3,显然不对;
用补码进行表示的话,-2就变成1 29个1 0 1再加上1,也就是1 30个1 0,这个时候再加上1,结果就是1 31个1,而-1的补码正好是1 31个1,结果是正确的。
所以,补码的出现是为了应对计算机大量的二进制加减法的运算,不需要判断数值前面的正负号。
- 为什么指数部分(Exponent)的范围是-127~128?
首先128,是因为8位全1,是加127的结果,减掉127,就是128;
然后-127,是因为负的8位全1,是补码表示,先要减去1,再减掉127,就是127。
最后的表示都是,指数部分加上127,127这个值不明白是怎么定出来的。
网友评论