2013-01-14 129 views
-3

當我想計算0的補數時,我得到-1作爲答案。我認爲它應該是一個很大的數字,因爲它是11111111(我不知道有多少位被使用我只是寫在8)二進制數字系統。爲什麼C++返回此結果

+4

所有的二進制補碼爲-1。 –

回答

10

使用unsigned整數類型。有符號整數上的按位運算有很多實現定義的行爲。

0

當值以二進制補碼解釋時,所有設置的位都是-1

+1

難道不是相反嗎? 「當'所有位設置'被解釋爲2的補碼時,它表示值-1。」你不能真正「解釋一個整數」。 –

相關問題