二进制 IEEE单精度浮点数转化为十进制浮点数
公式: (-1)s ×1. M ×2(E-127)
二进制IEEE单精度浮点数为32位,
第1位为阶符(sign),
第2位至第9位为阶码(exponent),
第10位至第32位为尾数(mantissa)。
S为0时表示正数,为1时表示负数。
将二进制E转化为十进制,并用E-127作为2的指数,并将剩余的23位作为1. M中的M
由于二进制的乘法可以用移位来表示,(E-127)为正数时将1. M的小数点向右移动(E-127)位,为负数时反之。
将最后得到的二进制数化为十进制。
例1: 41A4C000(16)化为十进制
①将十六进制化为十进制,即:
0100 0001 1010 0100 1100 0000 0000 0000
②重新组合
0 1000 0011 0100 1001 1000 0000 0000 000
③计算
S为0,该数为正数;
1000 0011 转化为十进制为131
指数为131-127=4
×2^4
1.M=1.0100 1001 1000 0000 0000 000
由于1. M×2^4
所以将小数点向右移动四位,即
10100.1001 1000 0000 0000 000
将其转化为十进制 为20.59375。
例2:0 0111 1110 1000 0000 0000 0000 0000 000(2)转化为十进制
s为0,该数为正数。
0111 1110转化为十进制126
×2E-127 =×2-1
1.1000 0000 0000 0000 0000 000小数点向左移移1位,0.1100 (后面的0忽略不计)
0.1100 转化为十进制0.75