我似乎无法弄清楚如何将2 * 10^33
转换为IEEE 754格式。
我发现符号位为0
我发现指数为110 +偏差(127)为0xED
但是,尾数只会让我感到害怕..我无法弄清楚为什么我会为这部分保持0分。
答案 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位是尾数)。