为什么--~x等于x + 1?

时间:2013-03-19 23:50:53

标签: c twos-complement

Obfuscated C Code Contest 2006. Please explain sykes2.c

因为两个补码而有一个声明“-~i == i+1。”

有人可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:4)

-~x等于x+1,因为~x等同于(0xffffffff-x)。这相当于2s补码中的(-1-x),因此-~x-(-1-x) = x+1