1. 补码
32位 int
表示的整数的范围是[-2147483648, 2147483647]
存储的二进制用补码来表示。
-
对于正数,原码 = 反码 = 补码。
-
对于负数,原码第一位置为1,表示负号。反码 = 原码除了符号位之外都翻转,补码 = 反码最后一位+1。
- 特别的,-2147483648 的补码是 1000....0000
2. 运算符>> << >>> <<<
-
">>" :带符号右移。正数右移高位补0,负数右移高位补1
-
">>>" :不带符号右移。右移高位统统补0
3. 运算符& ^
- & 与
- ^ 异或,
a⊕0 = a
,a⊕a = 0