首页 > 编程知识 正文

位非运算符运算方法,c语言中的位运算符有哪些

时间:2023-05-05 03:00:45 阅读:152702 作者:2764

C语言--位运算符

一.位运算符

1 .按位和:

1功能

*只有对应的2个二进制位为1时,结果位才会变为1,否则为0

*例: 10以二进制表示为1010,7以二进制表示为0111。 对两个数值进行运算

*1010

0111

-----------------

0010

*定律:如果在二进制文件中保持与1相同的位置,则在与0相同的位置变为0

2应用:使用运算符判断一个整数变量的奇偶校验

1intmain(2)3inta=10; 4 a1? printf((%d为奇数),a ) :printf ),) %d为偶数),a ); 5返回0; 6 }

利用判断变量奇偶校验

2 .按位或: |

1功能

*如果对应的2个二进制位中有1个是1,则结果为1,否则为0

2应用

*10以二进制表示1010,7以二进制表示0111。 对两个数值进行|运算

*1010

0111

-----------------

1111

3 .通过异或^^

1功能

*对应的二进制位不同时,结果为1,否则为0

*例: 10以二进制表示为1010,7以二进制表示为111。 对两个数值进行^运算

*1010

0111

-----------------

1101

2应用:使用异或运算符交换两个变量的值

1intmain(2)3/*该用法基于三个定律。 4 .用相同的数值进行异或运算,结果为0。 5 .任何数值与0的异或运算,结果仍为原始数值。 6 .交换定律:a^b^c=a^c^b*/

7 int a=10; 8 int b=11; 9 a=a ^ b; //a=10^11

10 b=a ^ b; //b=10^11^11=10

11 a=a ^ b; //a=10^11^10=11

12printf(a=%d,b=%d ),a,b ); 13 }

交换数值

4 .逐位反转:

1功能

*逐位反转是指按数值的二进制位进行反转操作,0为反转1,1为反转0

2应用

*例:用二进制数将10表示为1010,对1010进行~操作

*1010

-----------------

0101

5 .左移,右移

1功能

*an是指将a的各二进制比特向右移动n比特,在保持编码比特的状态下向右移动n比特,从而实际上除以2的n次方

2应用

*例:将10以二进制表示为1010,进行将1010向左偏移1位的操作,即为10100即20。 对1010进行1比特右移操作,结果为101即5 .

*注意:如果以后要对变量进行乘法或除法,可以使用左移或右移来提高性能

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。