这是我正在处理的电话号码
1 01110 001 = ____
1个符号位,5个exp位,3个小数位
偏见= 15
这是我目前的流程,希望你能告诉我我在哪里遗漏了什么
01110 = 14
14 - 15 = -1
0.001 * 2^-1 = 0.0001
.0001 = 1/16
符号位为1,因此我的结果是-1/16,但给定的答案是-9/16。有人会介意解释分数中的额外8来自何处?
答案 0 :(得分:2)
你似乎有正确的概念,包括对超额N表示的理解,但你错过了一个关键点。
用于编码幅度的小数部分的3位是001
,但在小数位之前有一个隐式1.
,因此完整幅度实际为1.001
,可以表示为1+1/8 => 9/8
的不正确分数。
2^(-1)
与1/(2^1)
或1/2
相同。
9/8 * 1/2 = 9/16
。考虑到符号位,您得到答案-9/16
。
答案 1 :(得分:2)
对于归一化浮点表示,尾数(小数位)= 1 + f。这有时被称为隐含的前导1表示。这是一种免费获得额外精度的技巧,因为我们总是可以调整指数E,使得有效M在1 <= M <1的范围内。 2 ...
你几乎是正确的,但必须考虑隐含的1.如果非规范化(意味着指数位都是0),你不添加隐含的1.
我会这样解决这个问题......
1 01110 001
bias = 2^(k-1) -1 = 14
Exponent = e - bias
14 - 15 = -1