异或实现交换两个变量得值
#include <iostream>
using namespace std;
int main() {
int x = 10;
int y = 5;
// 在交换前输出x和y的值
cout << "Before swap: x = " << x << ", y = " << y << endl;
// 使用异或操作交换x和y的值
x = x ^ y; // 步骤1
y = x ^ y; // 步骤2
x = x ^ y; // 步骤3
// 在交换后输出x和y的值
cout << "After swap: x = " << x << ", y = " << y << endl;
return 0;
}
取出n再二进制下的第k位
(n >> k)&1
#include <iostream>
using namespace std;
int main() {
for(int j = 1;j<=10;j++){
cout << j << ":";
for(int i = 4;i>=0;i--){
int tmp = (j>>i)&1;
cout << tmp << " ";
}
cout << endl;
}
return 0;
}
异或实现交换可以这么简写:
a ^= b ^= a ^= b