1、为什么要打印浮点数的二进制表示
在学习的计算机体系结构的时候,肯定会遇到数制的表示问题,其中最常见的就是定点数和浮点数的表示问题,定点数的表示很简单,有很多资料,浮点数的表示也不难,只是稍稍复杂,网上和书本中也有很多资料,这里再简单提一下IEEE-754标准的浮点数。
sign(符号) | exponent(阶码) | mantissa(尾数) |
---|---|---|
0 | 1000 0101 | 1001 0000 0000 0000 0000 000 |
以上是float 100
的二进制表示。
- sign 表示这个浮点数的正负,0为正,1为负。
- exponent表示阶码,也就是基的指数,我们应该都知道科学记数法,例如 502 502 502可以写成 5.02 ∗ 1 0 2 5.02*10^2 5.02∗102,其中10就代表基,浮点数的基是2。现在阶码可以表示 0 − 255 0-255 0−255的数值,我们为了想让基的指数可以为负,所以做了一个映射,将阶码减去-127,这样 ( 阶 码 − 127 ) (阶码-127) (阶