0

Windows 7 上的 MS 计算器具有“程序员”模式。当我输入(二进制)时:11111111111111111111111111111111111111111111111111111111111111

然后点击“Dec”,二进制变成-1。当我点击 Oct 时,该值变为 17777777777777777777777

但是,每当我使用在线转换器时,它都不起作用。我需要知道计算器是如何做到这一点的,以便我可以在 c++ 中模拟它。

4

3 回答 3

7

它使用 64 位二进制补码表示法。基本上,当您将 1 添加到 时2^63 - 1,它会溢出并得到-2^63. 维基百科了解更多详情

于 2010-01-04T20:07:43.707 回答
1

听说过 2s 补码吗?这一切都取决于(逻辑上取决于二进制数的长度。但是,硬件允许您一次使用一个单词。

于 2010-01-04T20:06:25.517 回答
1

当您将其切换为十进制时,它正在执行二进制补码。在八进制形式中,它进行直接转换。

于 2010-01-04T20:07:21.600 回答