异或运算符妙用

2018-01-30  本文已影响0人  佳佳嘉1024

异或运行符(^)

  1. 位相同,结果为0;
  2. 位不同,结果为1;

3个特点

操作 结果 示例
0异或任何数 任何数 a ^= 0
1异或任何数 任何数取反 a ^= 1
任何数异或自己 把自己置0 a ^= a

常见应用

  1. 翻转指定位
aa ^= ( 1 << 2 ); // 翻转第2位
  1. 不使用零时变量,交换两个值
a = a^b; // a=10100111
b = b^a; // b=10100001
a = a^b; // a=00000110
  1. 将变量置零
a ^= a; //  将变量a置零
  1. 判断两个值是否相等
if ( ( a ^ b ) == 0 ) { printf( "a = b" ); }
上一篇 下一篇

猜你喜欢

热点阅读