2012-05-18 64 views
5

MSDN.NET的整數是否僅僅基於二進制補碼系統?

Int32值被表示在31位,而第三十二位用作符號位。 正值用符號和大小表示法表示。負值以二的補碼錶示。

是不是真的,使用sign-and-magnitude system正值的表示是相同的使用two's complement system正值的代表性?

所以應該不是被改寫爲:「Int32值(無論正或負)的二進制補碼錶示中表示」

還是我誤解的東西?

+0

不,我不這麼認爲,補碼錶示存在的全部原因是爲了支持基本運算而不是負值。 10000001 == -127,00000001 == 1.正整數值不是用二進制補碼系統表示的 – Polity

+0

是的,當你考慮正數時,你必須意識到最高位並不意味着「更積極」意味着當你考慮任何數字時,你從2s補充的角度來考慮它,它可以是正面的或負面的。 –

回答

6

是的,你是對的。他們應該說它使用二進制補碼系統,然後給出有關使用31位的定義,而不是將否定解釋爲「二進制補碼」,只是解釋負數的位表示。然後給他們關於按位運算符的警告