说明将二进制数转换为十进制并将二进制补码转换为十进制时为什么会有不同的结果

时间:2019-10-28 15:57:47

标签: binary decimal signed twos-complement decimal-point

例如,我们给数字-1.5(10)。

将其转换为带符号的二进制文件,我们得到11.1000(2)。

其二进制补码为00.1000(2),转换为十进制时为0.5(10)。

这是不言自明的,因为它是一个不同的二进制数。

还有什么要解释的?

1 个答案:

答案 0 :(得分:0)

您正在混合苹果(有符号二进制)和橙子(二进制补码)。

您在一个表示形式(带符号的二进制)中取了一个负值,使用不同表示形式的技术(2的补码)取了它的负值,结果(不出意外地)结果变成垃圾。

如果您对带符号的二进制文件否定了11.1000(2),则最终会得到01.1000(2)-正确的答案。

如果您以-1.5、10.1000(2)的2的补码表示开始,并以那个的2的补码表示,您将得到01.1000 (2)-也正确。

请注意,其中 none 都不涉及将任何内容转换为十进制。