目录
&(位与,AND):
|(位或,OR):
位取反(~):
左移(<<):
右移(>>):
&(位与,AND):
语法:a & b
作用:将两个整数的对应二进制位进行逐位与运算,如果对应位都为1,则结果对应位为1;否则为0。
|(位或,OR):
语法:a | b
作用:将两个整数的对应二进制位进行逐位或运算,如果对应位中至少有一个为1,则结果对应位为1;否则为0。
示例:
#include <stdio.h>
int main() {
int a = 5; // 二进制表示为 0000 0101
int b = 10; // 二进制表示为 0000 1010
int and_result = a & b; // 0000 0000
int or_result = a | b; // 0000 1111
printf("a & b: %d\n", and_result); // 输出 0
printf("a | b: %d\n", or_result); // 输出 15
return 0;
}
位取反(~):
语法:~a
作用:对整数的二进制位进行逐位取反操作,即1变为0,0变为1。
#include <stdio.h>
int main() {
int a = 5; // 二进制表示为 0000 0101
int not_result = ~a; // 二进制表示为 1111 1010(补码)
//输出时补码变原码
printf("~a: %d\n", not_result); // 输出 -6
return 0;
}
左移(<<):
语法:a << n
作用:将整数的二进制位向左移动n位,右侧用0填充。相当于将整数乘以2的n次方。
#include <stdio.h>
int main() {
int a = 5; // 二进制表示为 0000 0101
int left_shift_result = a << 2; // 二进制表示为 0001 0100
printf("a << 2: %d\n", left_shift_result); // 输出 20
return 0;
}
右移(>>):
语法:a >> n
文章来源:https://www.toymoban.com/news/detail-731446.html
作用:将整数的二进制位向右移动n位,左侧用符号位(对于有符号整数)或0填充(对于无符号整数)。相当于将整数除以2的n次方。文章来源地址https://www.toymoban.com/news/detail-731446.html
#include <stdio.h>
int main() {
int a = 20; // 二进制表示为 0001 0100
int right_shift_result = a >> 2; // 二进制表示为 0000 0101
printf("a >> 2: %d\n", right_shift_result); // 输出 5
return 0;
}
到了这里,关于C语言—位运算符的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!