我知道第一位是符号,接下来的8位是指数。所以在这个例子中你会有1.1001 * 2 ^ -4?我如何用十进制解释这个?
0 01111011 10010000000000000000000
答案 0 :(得分:2)
由于你已经发现这是(二进制)1.1001 * 10 ^ -100,现在你只需要将二进制数转换为十进制数。
在十进制中,每个数字的值都是前一个数字的十分之一。在二进制中,每个数字的值是前一个数字的一半。
首先是1.1001 * 10 ^ -100 = 0.00011001。
哪个是......
0 * 1 0 * 1
+ 0 * 1/2 + 0 * 0.5
+ 0 * 1/4 + 0 * 0.25
+ 0 * 1/8 + 0 * 0.125
+ 1 * 1/16 + 1 * 0.0625
+ 1 * 1/32 + 1 * 0.03125
+ 0 * 1/64 + 0 * 0.015625
+ 0 * 1/128 + 0 * 0.0078125
+ 1 * 1/256 + 1 * 0.00390625
0.0625 + 0.03125 + 0.00390625 = 0.09765625
这就是它的全部内容。
答案 1 :(得分:1)
1.1001b
是1*1 + 0.5*1 + 0.25*0 + 0.125*0 + 0.0625*1
或1.5625
。乘以2**-4
(0.0625
)得到 0.09765625 。
答案 2 :(得分:0)
在C:
int fl = *(int*)&floatVar;