十六進位制八進位制和二進位制文字
hexadecimal
數字是 base-16 中的值。有 16 位數字,0-9
和字母 A-F
(情況無關緊要)。A-F
代表 10-16
。
octal
數字是 base-8 中的值,並使用數字 0-7
。
binary
數字是 base-2 中的值,使用數字 0
和 1
。
所有這些數字都會產生相同的值,110
:
int dec = 110; // no prefix --> decimal literal
int bin = 0b1101110; // '0b' prefix --> binary literal
int oct = 0156; // '0' prefix --> octal literal
int hex = 0x6E; // '0x' prefix --> hexadecimal literal
請注意,Java 7 中引入了二進位制文字語法。
八進位制文字很容易成為語義錯誤的陷阱。如果你將一個領先的'0'
定義為十進位制文字,你將得到錯誤的值:
int a = 0100; // Instead of 100, a == 64