一句话理解
^ 是按位异或:相同为 0,不同为 1。
为什么要学
交换、找出现一次的数、前缀异或。
讲解
x^x=0,x^0=x。交换:a^=b; b^=a; a^=b。
出现两次的数异或会消掉。
例子
cout << (7 ^ 3); // 111 ^ 011 = 100
输出:
4
不同的位留下。
常见错误
- 和乘方搞混。C++ 里 ^ 不是幂。
- 用异或交换同一变量 a^=a^=a。
第 214 课
^ 是按位异或:相同为 0,不同为 1。
交换、找出现一次的数、前缀异或。
x^x=0,x^0=x。交换:a^=b; b^=a; a^=b。
出现两次的数异或会消掉。
cout << (7 ^ 3); // 111 ^ 011 = 100
输出:
4
不同的位留下。
x ^ x 等于?
Ctrl / ⌘ + Enter 运行 · Tab 缩进
左右方向键也可翻课