在single precision floating point format 中,指数偏差为常数 127。您给出的特定位模式将浮点数编码为 128 (1000000) 作为指数:
0 10000000 11000000000000000000000
s exponent fraction
先看符号位,是0,所以是正数。
然后从指数中减去指数偏差,这就是 128 - 127 的来源。这给出了1。
然后我们开始将分数中的位相加(11000000000000000000000):
1 + 0.5 + 0.25 + 0 + 0 + 0....
给出 1.75
现在我们有 1(sign) * 2^1(exponent) * 1.75(fraction) = 2 * 1.75 = 3.5
另一个例子:
00111110101010101010101010101011
分解:
0 01111101 01010101010101010101011
s exponent fraction
符号为0,所以又是正数。
125 (01111101) 指数,从中减去指数偏差:125 - 127 = -2
解码分数01010101010101010101011
1 + 0 + 0.25 + 0 + 0.0625 + 0 + 0.015625 + 0 + 0.00390625 + 0 + 0.0009765625 + 0 + 0.000244140625 + 0 + 0.00006103515625 + 0 + 0.0000152587890625 + 0 + 0.000003814697265625 + 0 + 9.5367431640625e-7 + 0 + 2.384185791015625e-7 + 1.1920928955078125e-7
这给了1.3333333730697632左右。
现在把它们加在一起:
1(sign) * 2^-2(exponent) * 1.3333333730697632(fraction) = 0.25 * 1.3333333730697632 = 0.3333333432674408 =~ 0.3333333