嘿家伙我仍然试图得到两个补码算术的悬挂,我可以得到正确的答案,因为我正在解决实践问题。如何检查二进制补码减法方程的负解?
当我采用二进制的答案时,似乎无法在应用二进制补码和添加数字之前将它等同于小数的答案。
000100-111001在十进制它是4 - 57 = -53
变得
0001000 + 000111这将是4 +(-57)?
捐赠的001011
如何解决能001011被证明为等于-53?
谢谢!
嘿家伙我仍然试图得到两个补码算术的悬挂,我可以得到正确的答案,因为我正在解决实践问题。如何检查二进制补码减法方程的负解?
当我采用二进制的答案时,似乎无法在应用二进制补码和添加数字之前将它等同于小数的答案。
000100-111001在十进制它是4 - 57 = -53
变得
0001000 + 000111这将是4 +(-57)?
捐赠的001011
如何解决能001011被证明为等于-53?
谢谢!
要回答你的问题,首先001011不等于-53。这是错误的答案。我们知道它必须是正数,因为最高位是0,而不是1. 001011实际上等于11(以10为底)。
让我们以4 - 57现在为例。这与4 +(-57)相同。转换为二进制(我将只用一个字节作为本例),我们得到:4是0000 0100,57是0011 1001.要将57转换为负57,请使用二进制补码:
1.取反:1100 0110
2。添加一个:1100 0111
所以,现在我们得到以下公式:
0000 0100
+ 1100 0111
------------
1100 1011
我们通过简单地添加向下行实现了答案。我们得到的答案是1100 1011.我们知道它是负数,因为最高位(这里最左边)是1.为了找到它的大小,我们应用二进制补码:
1.否定:0011 0100
2 。添加一个:0011 0101
这等于基数为10的53。
查看它是否正确的另一种方法是将其与正数版本号相加。
1100 1011
+ 0011 0101
------------
10000 0000
由于补被定义为2^N减去的数字,其中n是比特数,你总是会得到这样的结果的总和。敲掉1位数字,有趣的是,剩下的只有0,任何数字加上负数都是零。