问:下列IEEE单精度浮点数所表示的十进制数分别是多少? (1)1011 1101 0100 0000 0000 000 0000 0000 (2)010l 0101 0110 0000 0000 0000 0000 0000 (3

admin2013-07-12  60

问题 问:下列IEEE单精度浮点数所表示的十进制数分别是多少?
    (1)1011 1101 0100 0000 0000 000 0000 0000
    (2)010l 0101 0110 0000 0000 0000 0000 0000
    (3)1100 0001 1111 0000 0000 0000 0000 0000
    (4)0011 1010 1000 0000 0000 0000 0000 0000
    (5)0000 0000 0000 0000 0000 0000 0000 0000

选项

答案(1)符号位为1,表示这是一个负数。阶码字段=0111IOIOB=122D,阶码真值=122-127=-5,尾数字段一100 0000 0000 0000 0000 0000B。所以十进制数值为:-(1.1)2×22=-0.046875。 (2)符号位为0,表示这是一个正数。阶码字段=101010lOB=170D,阶码真值=170-127=43,尾数字段=110 0000 0000 0000 0000 0000B。十进制数值为:(1.11)2×243=1.539×1019(表示为4位有效数字形式)。 (3)符号位为1,表示这是一个负数。阶码字段=1000001IB=131D,阶码真值=131-127=4,尾数字段=111 0000 0000 0000 0000 0000。十进制数值为:-(1.111)2×24=-30 (4)符号位为0,表示这是一个正数。阶码字段=01110101B=117D,阶码真值=117-127=-10,尾数字段=000 0000 0000 0000 0000 0000。十进制数值为:(1.0)2× 210=0.0009766(表示为4位有效数字形式)。 (5)由于符号位为0,阶码字段和尾数字段均为全0,所以它表示机器零。

解析 IEEE754浮点数的格式如模拟试题二参考答案中第15题图所示,根据IEEE754标准,首先将32位的二进制数分为数符、阶码和尾数三部分,然后分别求出阶码和尾数的真值,再加上数符。注意尾数用原码表示,且采用隐含尾数最高数位的方法。
[归纳总结]IEEE 754标准中,规格化的短浮点数v的真值表示为
    v=(-1)s×(1.f)×2E-127
    其中,S代表符号位,S=0表示正数,s=1表示负数;E为用移码表示的阶码;f是尾数的小数部分。
    为了表示∞。和一些特殊的数值,E的最小值0和最大值255将留作它用。因此,最小正常的E=1,最大正常的E=254,所以短浮点数的阶码真值的取值范围为-126~127。当E和m均为全0时,表示机器零;当E为全1,m为全O时,表示±∞。
[解题技巧]先将32位浮点数的三个部分分离清楚,特别要注意移码的偏置值和尾数隐含最高数位的问题。
转载请注明原文地址:https://kaotiyun.com/show/2rxi777K
0

最新回复(0)