如何解决IEEE 754乘法小数
我想将这两个数字相乘:
00100010000000000000000000000000(1.73472347598e-18)
和
00010101000000000000000000000001(-2.997414069111348324895269018E-38)
规则是:
(e1-127)+ e2
所以指数是
(68-127)+ 42 = -17
-17不能以IEEE754格式表示代表
此计算器表示指数为-126。 但是我该如何手工计算呢?
解决方法
第一:更正
00010101000000000000000000000001
不是-2.997414069111348324895269018E-38
,而是2.58493972238e-26
。
参见IEEE-754 Floating Point Converter
1.73472347598e-18 * 2.58493972238e-26
的乘积约为4.48416e-44
或十六进制/二进制表示形式0x1.0000002p-144
。 -144-(-127)是-17所追求的。
我该如何手动计算?
说指数是-126
“-17不能以IEEE754格式表示”。
乘积小于最小的归一化的值(有偏指数小于1),但大于最小的次归一化值。 IEEE format牺牲精度以扩展微小值的范围。将-17增大到1(即-126的有偏指数),然后将有效数0x1.000002
右移18。
s eeeeeeee mmmmmmmmmmmmmmmmmmmmmmm
0 00000000 00000000000000000100000
+0.00000000000000000100000 2 * 2 1-127
当编码的有偏指数为0时,将编码解释为有偏指数为1,但隐含的1位现在为0。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。