1、C语言中的符号: ^ 是按位异或”运算符 简单来说即 相同为0,不同为1;
举例说明:1 ^ 0 = 1, 1 ^ 1 = 0, 0 ^ 0 = 0; 1100 ^ 1011 = 0111
例如:15^6
先转成二进制数15----1111 6----0110
进行异或运算:
可得:1001 即得二进制数9;
用法2:转置位
例如, 想要把01011011位全部翻转,就可以用异或
0101 1011^1111 1111
= 1010 0100
此符号同时可以引申出 ^= 此符号
用法如下:
a^=b
相当于
a=a^b;
即表示a等于a原来的值与 b 进行按位异或后的值.
int a = 10,b = 5;//这两个数是随便写的
a^=b; // a=a^b
得到的值 a转成二进制为1010,b转成二进制为 0101 进行异或运算 得 1111 即15;
用于交换数值:
int a = 10,b = 55//这两个数是随便写的
a^=b;
b^=a;
a^=b;
这个程序可以在不定义临时变量的前提下交换两个数的位置。
即可得到a=55,b=10;