▲ 首先需要了解一些计算机的基础:
- 对于一个有符号的数(能表示正负),最高位就是符号位,其中0代表正数、1代表负数。
- 原码:把一个数换算成二进制形式,就是原码。
反码:原码中0变1、1变0——除符号位不变。
补码:正数的补码和原码一样的、负数的补码等于它的反码加1。 - 计算机底层,所有数都是以补码形式保存。
以 Short s = 264;
举例,Short 占16位
Short s = -264;
负数时符号位为1
▲ 位运算符:它只能对整数进行计算
- “&” 与:上下两位都是1时,得到结果才是1。
- “|” 或:上下两位只要有一个是1,得到结果就是1。
- “~” 非:单目运算符,原来是0就变1、原来是1就变0,符号都会变。它会改变数的正负。
- “^” 异或:上下两位不同时,得到结果就是1、上下两位相同时,得到结果是0。
- “<<” 左移N位:就相当于乘以2的N次方。
- “>>” 右移N位:就相当于除以2的N次方,如果除不尽,得到结果总是比实际除得结果略小的整数。
- “>>>” 无符号右移N位:在最高位总是补0,因此无论之前的数是什么,运算之后的结果总是正数。