float 在32位机上是 4个字节的。
它的结构是这样子的:
1位符号位 | 8 位指数位 | 23尾数位
其中指数是指以2 为底的指数, 因为指数可能为负数,比如十进制小数0.025,就是二进制小数0.001 (0*1/2 + 0*1/4 +1*1/8), 相当于1 *2 的-3次方。
所以规定指数位要加上127.
eg: float f=10.5;
f是正数,所以符号为是0, 10.5 相当于二进制的 1010.1 即 1.0101 *exp(2,3). 所以指数部分为 127+3=130.
尾数部分为0101 (二进制1.0101的尾数部分)。
所以10.5的二进制形式为 | 0 | 10000010 | 0101 0000 0000 0000 0000 000 |
符号 指数 尾数
换算成十六进制的数为 0x41280000
在32位系统中,float类型占用4字节,由1位符号位、8位指数位和23位尾数位组成。指数部分需要加上127以表示2的次方。例如,10.5的float表示为0x41280000,其中0是符号位,10000010是指数位(130),0101 0000 0000 0000 0000 000是尾数部分。
2万+

被折叠的 条评论
为什么被折叠?



