1.按位与(&)
#include <stdio.h>
int main() {
int a = 5; // 二进制: 0101
int b = 3; // 二进制: 0011
int result = a & b; // 结果应该是 0001, 即 1
printf("a & b = %d\n", result);
return 0;
}
2.按位或(I)
#include <stdio.h>
int main() {
int a = 5; // 二进制: 0101
int b = 3; // 二进制: 0011
int result = a | b; // 结果应该是 0111, 即 7
printf("a | b = %d\n", result);
return 0;
}
3按 位异或(^)
#include <stdio.h>
int main() {
int a = 5; // 二进制: 0101
int b = 3; // 二进制: 0011
int result = a ^ b; // 结果应该是 0110, 即 6
printf("a ^ b = %d\n", result);
return 0;
}
4按位取反(~)
#include <stdio.h>
int main() {
int a = 5; // 二进制: 0101
int result = ~a; // 在32位系统中,结果应该是 -6 (二进制: 11111111111111111111111111111010)
printf("~a = %d\n", result);
return 0;
}
5左移(<<)
#include <stdio.h>
int main() {
int a = 5; // 二进制: 0101
int result = a << 2; // 结果应该是 010100, 即 20
printf("a << 2 = %d\n", result);
return 0;
}
6右 移(>>)
#include <stdio.h>
int main() {
int a = 20; // 二进制: 10100
int result = a >> 2; // 结果应该是 00101, 即 5
printf("a >> 2 = %d\n", result);
return 0;
}