1. 程式人生 > >淺談Java中原碼、補碼和反碼

淺談Java中原碼、補碼和反碼

學習計算機時,對於十進位制轉二進位制大家很有所瞭解,這次講講原碼、補碼和反碼的基本概念。

原碼

原碼就是十進位制數字最原始的二進位制表示,在Java中,對於整數而言,其原碼格式為最高位為符號位,該位上1表示負數而0表示正數,剩餘位數為該數字的二進位制表示。以Java中32位int型的整數2及-2舉例:
2的原碼:00000000 00000000 00000000 00000010
-2的原碼:  10000000 00000000 00000000 00000010
對於原碼來說,正數和負數的原碼只有符號位不同。

反碼

正數的反碼為其原碼,負數反碼是除了最高位的符號位外,其餘位數取反(0改為1,1改為0),便得到了當前負數的反碼。
以2和-2舉例:
2的反碼:00000000 00000000 00000000 00000010
-2的反碼:11111111 11111111 11111111 11111101

補碼

正數的補碼為其原碼,負數的補碼是反碼加1。

以2和-2舉例:
2的補碼:00000000 00000000 00000000 00000010
-2的補碼:11111111 11111111 11111111 11111110