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。