1. 概述
位操作是程序设计中对位模式按位或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算)。
2. 取反(NOT)~
3. 按位或(OR)|
4. 按位异或(XOR)^
5. 按位与(AND)&
6. 移位 >>, <<, >>>
- 移动: >>, <<
- 无符号右移: >>>
- 无符号左移是不存在的,因为左右在低位补位,而低位没有正负数的概念,因此不存在无符号左移
7. 其他位操作技巧P
7.1. n & (n - 1)
该位运算技巧可以直接将 n
的二进制表示的最低位 1 移除。
- 不停的进行 n = n & (n - 1) 操作,直至n为0,可以计算二进制数的1的个数