2014-03-29 50 views
0

在c是1的補碼運算符。這相當於:〜A = -b + 1所以,一 - 一B -1 =α - ( - B + 1)+ 1 = A + B - 1 + 1 = A + B在不使用加法運算符的情況下添加兩個數字

任何人都可以向我解釋這個嗎?

+0

你是否爲自己完成了一些簡單的例子?也許嘗試用這種方法「添加」幾個4位數字,做3到4次,向自己解釋一下吧? –

+1

使用--b是另一種方法。 – Bathsheba

+0

這隻有在你理解[二進制補碼](http://en.wikipedia.org/wiki/Two's_complement)後纔有意義。 – user3386109

回答

4

從小學數學,我們知道

a = -(-a); 

從二進制補碼,我們知道

-a = (~a) + 1 (invert and add one) 

,所以我們知道,

a + b 
= a - (-b)  elementary math 
= a - (~b + 1) twos complement 
= a - (~b) - 1 distribute the negative (elementary math) 
0

你是正確的,~始終爲1的補(aka按位不)在c。你錯誤的地方在於:C不能保證數字的二進制補碼。因此,所有的計算都依賴於使用C的主要風味。

相關問題