IEEE 754 小数乘法
IEEE 754 multiplication small numbers
我想将这两个数相乘:
00100010000000000000000000000000 (1.73472347598e-18)
和
00010101000000000000000000000001 (-2.997414069111348324895269018E-38)
规则是:
(e1-127) +e2
所以指数是
(68 - 127) + 42 = -17
-17 无法以 IEEE754 格式表示
这个计算器,表示指数是-126。
但是我怎样才能手工计算呢?
第 1 次:更正
00010101000000000000000000000001
不是 -2.997414069111348324895269018E-38
,而是 2.58493972238e-26
.
参见 IEEE-754 Floating Point Converter
1.73472347598e-18 * 2.58493972238e-26
的乘积约为 4.48416e-44
或 hex/binary 表达式 0x1.0000002p-144
。 -144 - (-127) 是追捧的 -17.
how can I calculate this by hand?
says that the exponent is -126
“-17 无法以 IEEE754 格式表示”并不完全正确。
乘积小于最小的 标准化 值(偏差指数小于 1),但大于最小的 sub-normal 值。 IEEE format 牺牲微小值的扩展范围的精度。将 -17 增加到 1(即 -126 的偏置指数)并将有效数 0x1.000002
右移 18。
s eeeeeeee mmmmmmmmmmmmmmmmmmmmmmm
0 00000000 00000000000000000100000
+0.000000000000000001000002*21-127
当编码的偏置指数为 0 时,将编码解释为偏置指数为 1,但隐含的 1 位现在为 0。
我想将这两个数相乘:
00100010000000000000000000000000 (1.73472347598e-18)
和
00010101000000000000000000000001 (-2.997414069111348324895269018E-38)
规则是:
(e1-127) +e2
所以指数是
(68 - 127) + 42 = -17
-17 无法以 IEEE754 格式表示
这个计算器,表示指数是-126。 但是我怎样才能手工计算呢?
第 1 次:更正
00010101000000000000000000000001
不是 -2.997414069111348324895269018E-38
,而是 2.58493972238e-26
.
参见 IEEE-754 Floating Point Converter
1.73472347598e-18 * 2.58493972238e-26
的乘积约为 4.48416e-44
或 hex/binary 表达式 0x1.0000002p-144
。 -144 - (-127) 是追捧的 -17.
how can I calculate this by hand?
says that the exponent is -126
“-17 无法以 IEEE754 格式表示”并不完全正确。
乘积小于最小的 标准化 值(偏差指数小于 1),但大于最小的 sub-normal 值。 IEEE format 牺牲微小值的扩展范围的精度。将 -17 增加到 1(即 -126 的偏置指数)并将有效数 0x1.000002
右移 18。
s eeeeeeee mmmmmmmmmmmmmmmmmmmmmmm
0 00000000 00000000000000000100000
+0.000000000000000001000002*21-127
当编码的偏置指数为 0 时,将编码解释为偏置指数为 1,但隐含的 1 位现在为 0。