0
在c是1的補碼運算符。這相當於:〜A = -b + 1所以,一 - 一B -1 =α - ( - B + 1)+ 1 = A + B - 1 + 1 = A + B在不使用加法運算符的情況下添加兩個數字
任何人都可以向我解釋這個嗎?
在c是1的補碼運算符。這相當於:〜A = -b + 1所以,一 - 一B -1 =α - ( - B + 1)+ 1 = A + B - 1 + 1 = A + B在不使用加法運算符的情況下添加兩個數字
任何人都可以向我解釋這個嗎?
從小學數學,我們知道
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)
你是正確的,~
始終爲1的補(aka按位不)在c。你錯誤的地方在於:C不能保證數字的二進制補碼。因此,所有的計算都依賴於使用C的主要風味。
你是否爲自己完成了一些簡單的例子?也許嘗試用這種方法「添加」幾個4位數字,做3到4次,向自己解釋一下吧? –
使用--b是另一種方法。 – Bathsheba
這隻有在你理解[二進制補碼](http://en.wikipedia.org/wiki/Two's_complement)後纔有意義。 – user3386109