十六进制的0xFF到底是什么含义?

十六进制,必须是0x开头,这个x可以是大写,也可以是小写,如:0x123 等同于 0X123

在16进制中,除了0x之外,后面的表示:

1
2
3
4
5
6
7
0~9     表示本身数字
a 或 A 表示 10
b 或 B 表示 11
c 或 C 表示 12
d 或 D 表示 13
e 或 E 表示 14
f 或 F 表示 15

除去0x之后的数字,倒数第一位乘16的0次方,倒数第二位乘16的1次方,以此类推

举例:

0x123:316^0+216^1+1*16^2 = 3+32+256 = 291

0xabcd:1316^0+1216^1+1116^2+1016^3 = 13+192+2816+40960 = 43981

0xff:1516^0+1516^1 = 15+240 = 255

0x0ff:1516^0+1516^1+0*16^2 = 15+240+0 = 255

0xff0:016^0+1516^1+15*16^2 = 0+240+3840 = 4080

所有,0x0ff 等同于 0xff , 但不同于 0xff0

在Java类的Integer中,
public final class Integer extends Number implements Comparable {

@Native public static final int   MIN_VALUE = 0x80000000;

@Native public static final int   MAX_VALUE = 0x7fffffff;

0x80000000:8*16^7 = 2^3 * 2^28 = 2^31 = 1<<31 = 1后面31个0

0x7fffffff:716^7+1516^6+1516^5+1516^4+1516^3+1516^2+1516^1+1516^0 = 31个1