如何解决浮点数尾数和指数基数2
在这种情况下,我试图了解如何获取尾数和指数。这是我书中的一个例子。
我有这个公式(-1)^s * (1 + M) * b^E-e = x
s = 0 or 1 (the sign)
M = mantissa
b = base (In this case 2)
E = the exponent of this mantissa
e = 127 (for a 32bits system)
按书记入,对于 x = 1.602177 * 10 ^ -19,我得到
S = 0,
M = 0.4777474,
E = 64
有效。
1 * 1.4777474 * 2 ^ -63 = 1.602 10 ^ -19 *
但是,我不知道如何获取 M 和 E 的值。 >
我读到 E = log b | x |然后 M = | x | b ^ -E
在这种情况下, E = log2(1.602177 * 10 ^ -19)= -62.43660(我使用的网站是基于日志2的网站,所以我我不确定结果如何,所以我尝试使用E = -62和-63)。
M =(1.602177 * 10 ^ -19)* 2 ^-(-62)= 0.7388737
M =(1.602177 * 10 ^ -19)* 2 ^-(-63)= 1.4777474
如果我错了,请纠正我,但是尾数是浮点数右边的数字。在这种情况下,0.4777474看起来正确。
这时我有 E = -63和 M = 0.4777474,但是 E 应该是64
解决方法
我的E = -63,M = 0.4777474,但是E应该是64
从数学上讲,x = 1.602177 * 10^-19
位于2 -63 附近时,指数为-63。但是,存储的值是带有binary32的8位无符号 biased指数。从数学指数中减去偏差(-127)以获得偏差指数。
biased_exponent = expo - bias
64 = -63 - (-127)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。