16.位运算
- 位运算符
- 算数移位与逻辑移位
- 位运算的应用
为什么需要位运算
- 机器里的数字表示方式和储存格式就是二进制
- 十进制<->二进制如何转换? 各种进制转换
位运算符
含义 | 运算符 | 示例 |
---|---|---|
左移 | « | 0011 => 0110 |
右移 | » | 0110 => 0011 |
按位或 | | | 0011 | 1011 = 1011 |
按位与 | & | 0011 & 1011 = 0011 |
按位取反 | ~ | 0011 => 1100 |
按位异或(相同为0不同为1) | ^ | 0011 ^ 1011 = 1000 |
XOR-异或
异或: 相同为0,不同为1. 也可用"不进位加法"来理解。
异或操作的一些特点:
x ^ 0 = x
x ^ 1s = ~x //注意 1s = ~0
x ^ (~x) = 1s
x ^ x = 0
c = a ^ b => a ^ c = b, b ^ c = a // 交换两个数
a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c // associative
指定位置的位运算

实战位运算要点
