1

对于一些背景故事,我正在制作一个可以对补数进行算术运算的程序。为此,我将二进制字符串转换为 BigInteger,然后使用所述 BigInteger 执行数学运算,然后将其转换回二进制字符串。唯一的问题发生在最终结果低于 -127 或高于 +127 时,因为由于补数的性质,我不知道如何纠正它。我希望我能以某种方式将它们转换为无符号数字,并像这个答案所说的那样做。

我还从阅读链接的问题中得到了一些其他问题。我把它们放在引号中。我只是想了解它们的含义,然后向我解释。

首先

我知道如果最高位有进位,r 基数的 r-1 补码应该在进位附近结束。

第二

结束进位实际上相当简单:它将加法运算的模数从 rn 更改为 rn-1。

最后

同样,让我们​​将进位位保持在原位。如果你把数字看成无符号整数,我们计算的是 13 + 11 = 24。但是,由于回绕进位,加法是模 15 完成的,所以我们最终得到 9,它代表 -6(正确的结果)。

如果有人可以向我解释这些引用并提供一些网页供我阅读,我将不胜感激!:)

4

0 回答 0