我理解
我的猜想是:我认为这与Java使用二进制补码有关,因此如果我们有额外的空间,则溢出将是正确的数字,但由于我们没有足够的空间,所以结果变成了负数。因此,当您进行位移并用零填充时,由于使用了二进制补码,问题就神奇地解决了。但我可能错了,需要有位运算的脑子的人来确认一下。 :)
>>>
修复了溢出问题:当两个较大的正长整数相加时,可能会得到一个负数。有人能解释一下这个位移操作是如何神奇地解决了溢出问题?以及它与>>
有何不同吗?我的猜想是:我认为这与Java使用二进制补码有关,因此如果我们有额外的空间,则溢出将是正确的数字,但由于我们没有足够的空间,所以结果变成了负数。因此,当您进行位移并用零填充时,由于使用了二进制补码,问题就神奇地解决了。但我可能错了,需要有位运算的脑子的人来确认一下。 :)