2013-03-19 176 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

相關問題