十六进制八进制和二进制文字
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