本文主要介绍C语言中按位与、按位或、按位异或三个操作符的使用。
该三个操作符中的位,代表的是二进制位。
按位与:&
运算规则:只有两个数的二进制同时为1,结果才为1,否则为0。(负数按补码形式参加按位与运算)
实例:
#include<stdio.h> int main() { int a = 3 & 5; printf("%d ", a); return 0; }
输出结果:
分析该代码 :
1.3的补码: 0000 0000 0000 0000 0000 0000 0000 0011.
2.5的补码: 0000 0000 0000 0000 0000 0000 0000 0101.
3.经过按位与的操作,得到的补码为:0000 0000 0000 0000 0000 0000 0000 0001.
故输出结果为1.
按位或:|
运算规则:只有两个数的二进制同时为0,结果才为0,否则为1。(负数按补码形式参加按位或运算)
实例:
#include<stdio.h> int main() { int a = 3 | 5; printf("%d ", a); return 0; }
输出结果:
分析该代码:
1.3的补码:0000 0000 0000 0000 0000 0000 0000 0011.
2.5的补码:0000 0000 0000 0000 0000 0000 0000 0101.
3.经过按位或的操作,得到的补码为: 0000 0000 0000 0000 0000 0000 0000 0111.
故输出结果为7.
按位异或:^
运算规则:当两个数的二进制相同时,结果为0,否则为1。(负数按补码形式参加按位异或运算)
实例:
#include<stdio.h> int main() { int a = -3 ^ 5; printf("%d ", a); return 0; }
输出结果:
分析该代码:
1.-3的补码:1111 1111 1111 1111 1111 1111 1111 1101.
2.5的补码:0000 0000 0000 0000 0000 0000 0000 0101.
3.经过按位异或得到的补码为:1111 1111 1111 1111 1111 1111 1111 1000
故输出结果为-8.
这篇博客如果对你有帮助,给博主一个免费的点赞以示鼓励,欢迎各位🔎点赞👍评论收藏⭐️,谢谢!!!
如果有什么疑问或不同的见解,欢迎评论区留言哦。