在c~中是1的补码运算符。这相当于:~a = -b + 1所以,a - ~b -1 = a - ( - b + 1)+ 1 = a + b - 1 + 1 = a + b
有人可以向我解释这个吗?
答案 0 :(得分: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)
答案 1 :(得分:0)
你是对的,{c}中~
总是1的补码(也就是按位)。你出错的地方是:C不保证2的数字补码。因此,所有计算都取决于使用C的主要风格。