浮点数题目

将整数 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

(整数除了0,都是规格化数,且e > bias, e>127)

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

posted on 2021-11-10 21:04  jald  阅读(172)  评论(0)    收藏  举报

导航