位运算——异或常见用法
自用算法笔记
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
// 1. 0 ^ a = a
cout << (0 ^ a) << endl;
// 2. a ^ a = 0
cout << (a ^ a) << endl;
// 3. a ^ a ^ b = 0 ^ b = b
// 这个性质可以拓展到数列的异或中使用
cout << (a ^ a ^ b) << endl;
// 4. swap(a, b)
a ^= b, b ^= a, a ^= b;
cout << a << ' ' << b << endl;
// 5. a != b
cout << (bool)(a ^ b) << endl;
// 6. 一些特殊位的数字是可以用来做加减法的
// 其条件是每个操作数在该位都为0或都为1
// 都为0时是加法,都为1时是减法
// int和char转换:num ^ 48
// 大写转小写:ch ^ 32
cout << (char)(4 ^ 48) << endl;
cout << (char)('A' ^ 32) << endl;
cout << (char)('a' ^ 32) << endl;
return 0;
}
写得太棒了,果断收藏
6
一上线就看到你在卷acw
一个月没上线了,都没做过题😅😅
做题不打卡偷偷卷是吧