Binary 将十六进制转换为IEEE-754单精度浮点二进制科学表示法

Binary 将十六进制转换为IEEE-754单精度浮点二进制科学表示法,binary,floating-point,hex,ieee-754,scientific-notation,Binary,Floating Point,Hex,Ieee 754,Scientific Notation,我试图把这些数字转换成二进制科学记数法,但我搞不懂这个过程。有人能告诉我解决这个问题的过程吗 对于IEEE 754单精度浮点,以二进制科学记数法书写的数字是多少,其十六进制表示形式如下 00610000 我可以将其从十六进制转换为无符号二进制: 0000 0000 0110 0001 0000 0000 但我不知道如何正确地用二进制科学符号表示。提前谢谢 分为三部分:符号、指数(有偏)和有效位(或分数) 所以在这种情况下, sign (negative) = 0, so number is po

我试图把这些数字转换成二进制科学记数法,但我搞不懂这个过程。有人能告诉我解决这个问题的过程吗

对于IEEE 754单精度浮点,以二进制科学记数法书写的数字是多少,其十六进制表示形式如下

00610000

我可以将其从十六进制转换为无符号二进制:

0000 0000 0110 0001 0000 0000

但我不知道如何正确地用二进制科学符号表示。提前谢谢

分为三部分:符号、指数(有偏)和有效位(或分数)

所以在这种情况下,

sign (negative) = 0, so number is positive
exponent (biased) = 0000 0000
significand = .1100001 0000 0000 0000 0000
如果指数(2的幂)处于最高值(1111111),则表示该数字是特殊的:无穷大或非数字

如果指数为0,则偏差为-126,否则偏差为-127,应向分数中添加隐含的
1

0000 0000 0110 0001 0000 0000 0000 0000
||        ||                          |
||        |\-- significand -----------/
| \ expo  /
\ sign
sign = 0 (positive) or +1
exponent = 0 - 126
significand = 0.1100001 =  (binary) 1100001/10000000 = 97/128

+1 * pow(2, -126) * 97/128 = 8.9080431273251475213255815711373...e-39
注:
在线转换器可用

Endian:字节的解释顺序可能会有所不同<代码>0061 0000可能是
00 00 61 00
。这个例子中有一个假设。

你能提供一些关于你被困在哪里的信息吗?例如,你了解32位IEEE 754二进制浮点的格式吗?我对使用IEEE转换不太熟悉,所以我对这个问题不太了解。在这种情况下,我建议从阅读开始。我正在阅读教授的一些课堂讲稿,但这些例子对我来说没有多大意义。你能解释一下如何从无符号二进制到二进制的科学记数法,即0000 0000 0110 0001 0000 0000吗?谢谢如果课堂讲稿对你来说没有意义,那么一定是时候阅读至少一篇关于这个主题的其他讨论了。如果你真的想成为一名计算机科学的学生,你需要学习计算机科学,这包括阅读有关概念并应用它们,而不仅仅是要求别人为你解决具体问题。谢谢!你的解释比我在网上读到的更清楚。我最终浏览了维基百科页面,并努力通过,因为这是几天前到期的作业。当我使用维基百科页面上的示例进行这项操作时,我得到了8.86212538 x 10^-39作为我的答案,用二进制科学符号表示。我认为这是可以接受的,只是一个取整问题?我还没有从老师那里得到任何反馈。@ComputerScienceStudent 8.86212538 x 10^-39对于
0000 0000 0110 0000 1000…
有些地方不对劲。