2014-03-29 148 views

回答

4

我假設a是一個有符號整數並初始化爲2.我也假設這是二進制補碼。 (我也省略了第一個字節之上的字節,因爲它們對這個答案的結果沒有意義)。

〜(代字號)是按位不是運算符。也就是說,它會使任何1變爲0,任何0變爲1. < <有點向左移動。

所以在開始時我們得到00000010作爲a中的位。當我們做非運算符時,我們得到11111101,這將給我們-3。

然後我們再加2,所以我們得到11111111或-1。然後,我們將這一個轉移到左邊,我們有11111110等於-2。

+3

...並且您還假設有符號整數存儲爲二進制補碼。 :)這對任何今天的平臺來說都是事實。 –

+0

@DanielKamilKozar是的,我並不覺得複雜的答案,因爲我覺得這不可能是兩個補充。我已經將它添加到標題了。 – Asthor

相關問題