2013-03-19 184 views
-2

Obfuscated C Code Contest 2006. Please explain sykes2.c为什么 - 〜x等于x + 1?

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

有人可以解释为什么会出现这种情况吗?

+2

您是否阅读过[维基百科有关two's-complement的文章](http://en.wikipedia.org/wiki/2%27s_complement)? – 2013-03-19 23:51:45

+0

对不起,我试图回答这个问题。我试图给另一个问题添加一个答案,但他们说这不是一个答案。 – 2013-03-19 23:56:08

回答

4

-~x等于x+1,因为~x相当于(0xffffffff-x)。这等于(-1-x)的二进制补码,所以-~x-(-1-x) = x+1

相关问题