首页 > 试题广场 >

IEEE754 规定规约型单精度浮点数由 1 位符号位,8

[填空题]
IEEE754 规定规约型单精度浮点数由 1 位符号位,8 位指数值和 23 位分数值构成。指数偏移值为 127,分数值默认整数部分为 1,只存储小数部分。例:十进制浮点数-12.5,转换为二进制为(-1100.1)2=(-1.1001)2×2^3,符号位为 1,指数值为3+127=130=0x82,分数值为 0x480000,连接后存储为 0xC1480000;问十进制浮点数52.625和十进制浮点数 526.25进行按位或操作得到的十进制浮点数是1
先解释一下连接的过程.以题目所给例子,连接过程如下:
————————————————————————————————————
符号(1 bit)  指数(8 bit)              分数(23 bit,16进制在最高位补0)
1(负号)       1000,0010(0x82)   (0)100,1000,0000,0000,0000,0000(0x480000)
合起来就是 1100,0001,0100,1000,0000,0000,0000,0000 化成16进制就是0xC148
————————————————————————————————————
(1)按照题意,52.625换成浮点编码过程如下,末尾的0此处省略,为了看得更清楚,小数点用*表示:
先化成二进制 110100*101  去掉最高位(即整数位的1)得到其指数是5,
加上偏移量(5+127)得132,对应的2进制表示为1000,0100(0x84) 同样后面的分数部分(0)101,0010,1000(0x528)
————————————————————————————————————
符号(1 bit)  指数(8 bit)              分数(23 bit,16进制在最高位补0)
0(正号)       1000,0100(0x84)   (0)101,0010,1000,0000,0000,0000(0x528000)
将其连接起来就是 0100,0010,0101,0010,1000,0000,0000,0000(0x42528000)
————————————————————————————————————
(2)同上,526.25的浮点二进制编码如下
————————————————————————————————————
符号(1 bit)  指数(8 bit)              分数(23 bit,16进制在最高位补0)
0(正号)       1000,1000(0x88)   (0)000,0011,1001,0000,0000,0000(0x528000)
将其连接起来就是 0100,0100,0000,0011,1001,0000,0000,0000(0x44039000)
————————————————————————————————————
(3)将两个2进制编码按位或运算
0100,0010,0101,0010,1000,0000,0000,0000
0100,0100,0000,0011,1001,0000,0000,0000
—————————————————————
0100,0110,0101,0011,1001,0000,0000,0000
(4)反向将2进制编码换成10进制数
符号(1 bit)  指数(8 bit)              分数(23 bit,16进制在最高位补0)
0                 1000,1100            ()101,0011,1001,0000,0000,0000
0代表正数,1000,1100(2)-127(10)=13指数是13,接下来将分数部分还原。
先将分数分成前13位和后10位,则前13位为去掉最高位1的整数部分,后10位为小数部分
1,0100,1110,0100*0000,0000,00
然后将最高位的1补上,最后转换成10进制就得到最终结果13540
11,0100,1110,0100*0000,0000,00
————————————————
8192+4096+1024+128+64+32+4=13540

发表于 2019-08-07 16:27:37 回复(0)