无法弄清楚如何将这种科学#转换为IEEE 754

时间:2011-10-06 22:20:18

标签: ieee-754

我似乎无法弄清楚如何将2 * 10^33转换为IEEE 754格式。

我发现符号位为0 我发现指数为110 +偏差(127)为0xED

但是,尾数只会让我感到害怕..我无法弄清楚为什么我会为这部分保持0分。

3 个答案:

答案 0 :(得分:1)

你需要2 * 10 ^ 33的前24位。第一位始终为1,其余23位构成IEEE-754单精度浮点数的最后23位。

现在,2 * 10 ^ 33有110个二进制数字,所以它太大了,无法用大多数工具(计算器或编程语言)精确计算。我们可以通过注意2 * 10 ^ 33 = 2 *(2 * 5)^ 33 = 2 ^ 34 * 5 ^ 33来使事情变得更容易一些,因此我们的数字的前24位与5的相同^ 33,只有76位。

我们可以进一步写:

5^33 = (2^7 - 3)^11
     = 2^77 - 11*3*2^70 + 55*9*2^63 - 165*27*2^56 + 330*81*2^49 
           - 462*243*2^42 + 462*729*2^35 - 330*2187*2^27 + ...
     = 2^53 * (2^24 - 33*2^17 + 495*2^10 - 4455*2^3 + 26730/2^4 
           - 112266/2^11 + 336798/2^18 - 721710/2^25 + ...)
     = 2^53 * (16777216 - 4325376 + 506880 - 35640 + 1670.625
           - 54.817... + 1.284... - 0.0215...)
     = 2^53 * 12924697.071
     = 2^53 * 110001010011011100011001b

我们在最后一步舍入。因此,尾数的存储部分是10001010011011100011001。结合您已有的信息,结果是:

0 11101101 10001010011011100011001

或以十六进制:

76C53719

答案 1 :(得分:0)

如果您想自动完成,请尝试this website。在顶部文本框中输入2e33,然后点击Rounded或Not Rounded按钮以获得答案。

答案 2 :(得分:0)

如果您在我的decimal/binary converter中键入2000000000000000000000000000000000,您将获得

110001010011011100011001000100100011011001001100111000110000010101101100001010000000000000000000000000000000000

舍入到24个有效位 - 浮点数中的位数 - 这是110001010011011100011001(尾数23位是尾数)。