1 位运算符
位运算符有3种,并且是对存储在计算机上的二进制补码进行运算。
按位与 &,有0则0,全1为1
按位或 | ,有1则1,全0为0
按位异或 ^ ,相同为0,相异为1
相关原码,反码,补码介绍看:关于移位操作符中的原码、反码和补码
2 按位与 &
int a = 3;
int b = -5;
int c = a & b;
printf("%d", c);//打印结果为3
因为3为整数,所以原码,反码和补码是一样的。
3的原码,反码和补码分别如下:
原码为:0000 0000 0000 0000 0000 0000 0000 0011
反码为:0000 0000 0000 0000 0000 0000 0000 0011
补码为:0000 0000 0000 0000 0000 0000 0000 0011
-5的原码,反码和补码分别如下:
原码为:1000 0000 0000 0000 0000 0000 0000 0101
反码为:1111 1111 1111 1111 1111 1111 1111 1010
补码为:1111 1111 1111 1111 1111 1111 1111 1011
拿3和-5的补码进行按位与运算
3补码为:0000 0000 0000 0000 0000 0000 0000 0011
-5补码为:1111 1111 1111 1111 1111 1111 1111 1011
按位与后的原码,反码和补码分别如下:
补码为:0000 0000 0000 0000 0000 0000 0000 0011
反码为:0000 0000 0000 0000 0000 0000 0000 0011
原码为:0000 0000 0000 0000 0000 0000 0000 0011
输出结果为3
3 按位或 |
int a = 3;
int b = -5;
int c = a | b;
printf("%d", c);//打印结果为-5
拿3和-5的补码进行按位或运算
3补码为:0000 0000 0000 0000 0000 0000 0000 0011
-5补码为:1111 1111 1111 1111 1111 1111 1111 1011
按位或后的原码,反码和补码分别如下:
补码为:1111 1111 1111 1111 1111 1111 1111 1011
反码为:1111 1111 1111 1111 1111 1111 1111 1010
原码为:1000 0000 0000 0000 0000 0000 0000 0101
输出结果为-5
4 按位异或 ^
int a = 3;
int b = -5;
int c = a ^ b;
printf("%d", c);//打印结果为-8
拿3和-5的补码进行按位异或运算
3补码为:0000 0000 0000 0000 0000 0000 0000 0011
-5补码为:1111 1111 1111 1111 1111 1111 1111 1011
按位异或后的原码,反码和补码分别如下:
补码为:1111 1111 1111 1111 1111 1111 1111 1000
反码为:1111 1111 1111 1111 1111 1111 1111 0111
原码为:1000 0000 0000 0000 0000 0000 0000 1000文章来源:https://www.toymoban.com/news/detail-824648.html
输出结果为-8文章来源地址https://www.toymoban.com/news/detail-824648.html
到了这里,关于【C语言】关于位运算符的简单运用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!