浮点数题目
将整数 0x00359141 推导出float的十六进制表示
x = 0x00359141
二进制 : 0011 0101 1001 0001 0100 0001
1.找s
因为 x > 0 所以 s = 0
2.找e
x最高有效位是 21位, x < 2^22 且 x > 2^21 , 所以E = 21
E = e - bias = e - 127 = 21
e = 148 = 二进制 1001 0100
3.找f
0x00359141 = 1 * 2^21 * (1 + f)
f = (0x00359141 - 2^21) / 2^21
f = 1413441 / 2^21 = 二进制 000101011001000101000001 >> 21
= 0.101011001000101000001
保留小数部分,不够23位的尾部补0
= 10101100100010100000100
浮点数二进制表示为
0 1001 0100 10101100100010100000100
0100 1010 0101 0110 0100 0101 0000 0100
写成十六进制
= 0x4a564504
浙公网安备 33010602011771号