Floating point IEEE 754乘法小数

Floating point IEEE 754乘法小数,floating-point,ieee-754,Floating Point,Ieee 754,我想把这两个数字相乘: 001000100000000000000000000000(1.73472347598e-18) 及 00001010000000000000000000001(-2.997414069111348324895269018E-38) 规则是: (e1-127)+e2 所以指数是 (68-127)+42=-17 -17不能以IEEE754格式表示 这个计算器的指数是-126。 但是我怎样才能手工计算呢?1st:更正 0000101000000000000000000000

我想把这两个数字相乘:

001000100000000000000000000000(1.73472347598e-18)

00001010000000000000000000001(-2.997414069111348324895269018E-38)

规则是:

(e1-127)+e2

所以指数是

(68-127)+42=-17

-17不能以IEEE754格式表示

这个计算器的指数是-126。 但是我怎样才能手工计算呢?

1st:更正

00001010000000000000000000001
不是
-2.997414069111348324895269018E-38
,而是
2.58493972238e-26


1.73472347598e-18*2.58493972238e-26
的产品大约是
4.48416e-44
或十六进制/二进制expo符号
0x1.0000002p-144
-144-(-127)是广受欢迎的-17

如何手动计算此值?
表示指数是-126

“-17不能用IEEE754格式表示”不太正确

乘积小于最小标准化值(偏差指数小于1),但大于最小次标准化值。对于较小的值,扩展范围会牺牲精度。将-17增加到1(即-126的偏置指数),并将有效位
0x1.000002
18向右移动

s eeeeeeee mmmmmmmmmmmmmmmmmmmmmmm
0 00000000 00000000000000000100000
+0.000000000000000001000002*21-127


当编码的偏置指数为0时,将编码解释为偏置指数为1,而隐含的1位现在是0。

我真的不明白为什么要将18右移。在-126偏置指数下,我有两种模式。当指数为0时,第一个字符为0;当指数为1时,第一个字符为1。所以我想只向右移动17次。@wwwww如果不使用次正常数,最小的标准化值是1.0*2^-126,编码为
0 00000001(1.)00000000000000000000000
。。要编码1.0*2^-127,我们右移一次:0.1*2^-126并编码为
0 00000000(0.)100000000000000000000
我们需要编码4.48416e-44或1.0*2^-144,或者将1右移18次为0.000000000000000001*2^-126,并编码为
0 00000000(0.)00000000000000000000000100000
“在-126偏置指数时,我有…”-->偏置指数是8位,值为0到255。当它为0时,二进制指数为-126。当它为[1…254]时,二进制指数为
偏置指数-127