首页 > 编程知识 正文

c语言逻辑运算符异或,c语言中的位运算符

时间:2023-05-06 05:06:48 阅读:241842 作者:3512

异或:位运算符,两数相"异",则为真(1)。简单的描述其作用就是0 ^ 1=1,0 ^ 0=0,1 ^ 1=0。参加运算的两个二进制位为同号,则结果为0,异号则为1。

异或的特性及应用:

1.使特定位翻转
  假设有01111010,想使其低4位翻转,即1变为0,0变为1,可以将它与00001111进行 ^ 运算,即结果值的低4位正好是原数低4位的翻转。要使哪几位翻转就将与其 ^ 运算的该几位置为1即可。这是因为原数中值为1的位与1进行 ^ 运算得0,原数中的位值0与1进行 ^ 运算的结果得1。

2.与自身异或为0,与0异或不变
假设3 ^ 3,即011 ^ 011,结果为000;
3 ^ 0,011 ^ 000,结果为011,还是3;
用此特性可完成两个数a,b的交换且不需要临时变量。
a = a ^ b //此时给a赋值a ^ b;
b = a ^ b //此时a = a ^ b 则 b = a ^ b ^ b. 得b = a;
a = a ^ b //此时a = a ^ b, b = a. 则 a = a ^ b ^ a. 得a = b.完成交换。

3.异或满足交换律和结合律:
即a ^ b ^ c = b ^ a ^ c
(a ^ b) ^ c = a ^ (b ^ c)

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