我正在查看 1750A format webpage 中的一些示例有些例子并没有真正的意义。我在这篇文章的底部包含了 1750A 格式规范,以防有人不熟悉它。
以 1750A 格式网页的表 3 为例:
.625x2^4 = 5000 00 04
二进制5000 00 04
为0101 0000 0000 0000 0000 0000 0000 0100
如果将其转换为十进制,它不等于 10,即 0.625x2^4。也许我转换错误。
取尾数101 0000 0000 0000 0000 0000
并减去1,得到100 1111 1111 1111 1111 1111
。然后翻转这些位,得到 011 0000 0000 0000 0000 0000
。将小数移动 4 位(因为我们的指数 0100
是 4),得到 0110.0000 0000 0000 0000 000
。这等于 6.0,而不是 0.625x2^4。
我相信实际值应该是十六进制的 0011 0000 0000 0000 0000 0000 0000 01000
或 30000004
。
其他人能否证实我的怀疑,即上面 1750A 格式页面的表 3 中该值标记不正确?
谢谢
最佳答案
作为 explained previously ,符号+尾数被解释为 -1 和 +1 之间的 2 补码值。
在你的例子中,它是 0.101000000...(base-2)。即 1/2 + 1/8 = 0.625(以 10 为底)。
关于c - MIL-STD-1750A 到十进制转换示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14611450/