2016-10-04 58 views
0

所以我在做CS,講師寫了一個新的二進制問題,我不能把頭包裹起來。Two's Complement,減去兩個負數的二進制數

基本上,你如何減去兩個負數如果他們是二進制的?

具體如何使用剛推出的Two's Constant來實現。

例如:-2 - -7 = 5
還是:1110 - 1001

我不明白你如何使用這些位來得到正確的答案,即5.

任何人都可以幫忙嗎?

+0

你經常做減法以同樣的方式?或者當你溢出最左邊的位時,你在問規則嗎? –

+0

嗨凱文,我真的不明白怎麼樣?如果我切換第二學期並添加它們,即使在溢出之後,我仍留有數字1。你介意給我看一個例子嗎? – alexjackhughes

+0

潛在地嘗試在這裏? http://cs.stackexchange.com/ – dahui

回答

1

如果你有

1110 -2 
- 1001 -7 
------ 
    0101 5 

,這是一樣的

1110 -2 
+ 0111 7 
------ 
    0101 5 
+1

謝謝!所以,答案是10101 - 那麼因爲溢出,你擺脫了最左邊的數字,使它成爲0101,即5? – alexjackhughes

+0

@alexjackhughes是的,如果您使用4位或8位或32位值,則不會因爲執行計算而獲得額外的位。 (從技術上講,CPU確實將這一點保留在標誌中,但Java忽略它們) –