float 内存如何存储的
类型
|
存储位数
|
总位数
|
偏移值
(offset) | ||
数符
(S)
|
阶码
(E)
|
尾数
(M)
| |||
短实数
(float)
|
1
|
8
|
23
|
32
|
127
|
长实数
(double)
|
1
|
11
|
52
|
64
|
1023
|
N (10) = 123.456,
换算成二进制表示:
N (2) = 1111011. 01110100101111001
= 1. 11101101110100101111001(...) * 2^6
那么E – 127 = 6; E = 127 + 6 = 133(10) = 10000101(2)
M = 111 0110 1110 1001 0111 1001 (省略了最高数字位1, 共23bit)
组合起来就是:
S E M
0 10000101 111 0110 1110 1001 0111 1001
4bit一间隔:
0100 0010 1111 0110 1110 1001 0111 1001
4 2 F 6 E 9 7 9