所以我在做CS,讲师写了一个新的二进制问题,我不能把头包裹起来。Two's Complement,减去两个负数的二进制数
基本上,你如何减去两个负数如果他们是二进制的?
具体如何使用刚推出的Two's Constant来实现。
例如:-2 - -7 = 5
还是:1110 - 1001
我不明白你如何使用这些位来得到正确的答案,即5.
任何人都可以帮忙吗?
所以我在做CS,讲师写了一个新的二进制问题,我不能把头包裹起来。Two's Complement,减去两个负数的二进制数
基本上,你如何减去两个负数如果他们是二进制的?
具体如何使用刚推出的Two's Constant来实现。
例如:-2 - -7 = 5
还是:1110 - 1001
我不明白你如何使用这些位来得到正确的答案,即5.
任何人都可以帮忙吗?
如果你有
1110 -2
- 1001 -7
------
0101 5
,这是一样的
1110 -2
+ 0111 7
------
0101 5
谢谢!所以,答案是10101 - 那么因为溢出,你摆脱了最左边的数字,使它成为0101,即5? – alexjackhughes
@alexjackhughes是的,如果您使用4位或8位或32位值,则不会因为执行计算而获得额外的位。 (从技术上讲,CPU确实将这一点保留在标志中,但Java忽略它们) –
你经常做减法以同样的方式?或者当你溢出最左边的位时,你在问规则吗? –
嗨凯文,我真的不明白怎么样?如果我切换第二学期并添加它们,即使在溢出之后,我仍留有数字1。你介意给我看一个例子吗? – alexjackhughes
潜在地尝试在这里? http://cs.stackexchange.com/ – dahui