我認爲,解決這個問題最簡單的方法是將其喙成小步驟。
我的第一個假設是,你正在試圖解決15(1111(二進制)) - 18(10010(二進制))
我覺得做減法的補最簡單的方法是通過method of complements這是而不是試圖從正面15(+15 - (+18))減去正面18,而是向正面15(+15 +( - 18))加上負面18。這有相同的結果,但更容易做兩個人的讚美(注意:你不能這樣做,如果你的號碼系統沒有負數)
所以我們必須採取數字15和-18和convert them into two's complement numbers。由於18以5位二進制表示,因此我們需要使用至少6個6位來表示-18的二進制補碼。
至-18轉換成二進制補,我們採取18補010010翻轉那些位(轉0到1秒和1到0)101101,然後用添加一個到翻轉位binary addition
1 (carried digits)
101101 (-19 (flipped 18))
+ 000001 (1)
_________
101110 (-18)
要轉換15分爲兩補,我們採取15二進制(1111),然後我們在左邊加個零,直到它的數字相同數量的-18(101110)001111
現在我們兩個的兩個號碼補充我們可以將它們加在一起使用binary addition
111 (carried digits)
001111 (15)
+ 101110 (-18)
_________
111101 (-3)
這給了我們-3的補碼,這是正確的答案(15 - 18 = -3)。
您可以瞭解補看twos complement wiki page
我建議您閱讀http://en.wikipedia.org/wiki/Two%27s_complement。 – 2012-02-29 23:58:31