第 14 题
float 型数据常用IEEE754 单精度浮点格式表示。假设两个float 型变量x 和y 分别存放在32位寄存器 f1和 f2 中,若(f1)=CC900000H,(f2)=B0C00000H, 则x 和y 之间的关系为()。
A.x<y 且符号相同
B.x<y 且符号不同
C.x>y 且符号相同
D.x>y 且符号不同
[tag_link]
正确答案:A
(f1) 和 (f2) 对应的二进制分别是 ( 110011001001 ⋯ ) 2 和 ( 101100001100 ⋯ ) 2 , 根据 IEEE754 浮点数标准,可知 (f1) 的数符为 1,阶码为 10011001,尾数为 1.001,而 (f2) 的数符为 1,阶码为 01100001,尾数为 1.1 ,则可知两数均为负数,符号相同,B、D 排除。(f1) 的绝对值为 1.001 × 2 26 , (f2) 的绝对值为 1.1 × 2 − 30 ,则 (f1) 的绝对值比 (f2) 的绝对值大,而符号为负,真值大小相反,即 (f1) 的真值比 (f2) 的真值小,即 x<y,选 A。此题还有更为简便的算法, (f1) 与 (f2) 的前 4 位为 1100 与 1011,可以看出两数均为负数,而阶码用移码表示,两数的阶码头三位分别为 100 和 011, 可知 (f1) 的阶码大于 (f2) 的阶码,又因为是 IEEE754 规格化的数,尾数部分均为 l.xxx, 则阶码大的数,真值的绝对值必然大,可知 (f1) 真值的绝对值大于 (f2) 真值的绝对值,因为都为负数,则 (fl)<(f2), 即 x<y。