在C语言中,“^”是双目运算符,用于完成两个数据的按位异或操作。该运算符可以用来进行两个数据的比较或者对一个数据中的某些位进行处理。
1、if(a^0x8)a=0;//如果a不等于08H则a=0
2、a=a^0xf0;//将a的高4位取反低4位不变后存回a
这个是位异或运算符,在二进制上做异或运算
a= b^c;
11001010 = 10011000 ^ 01010010
运算效果
在位上进行比较,如果值不同得1,如果值相同得0
^ 二进制位异或,双目操作符
如果a与b中有且仅有一个为1时,a^b的值为1,其它情况下值为0
a1 = 0x01; //0000 0001
a2 = 0x00; //0000 0000
a3 = 0x03; //0000 0011
a4 = 0x02; //0000 0010
b1 = a1 ^ a2; //0000 0001
b2 = a1 ^ a3; //0000 0010
b3 = a1 ^ a4; //0000 0011
^异或运算符,位值相同为0,不同为1,见上示例.
//
简单实际问题举例:
======\=======\=======
======a=======b=======
上面是2条电路,2个开关分别为a和b,打开状态:\[1],关闭状态:/[0].
若同时打开或者关闭,两条电路均不通.
若a打开[1],b关闭[0],电路1通电
======\=======/=======
若a关闭[0],b打开[1],电路2通电
======/=======\=======
综上,电路在a,b状态相同时不通[0],在a,b不同时通电[1].
不明白你什么意思,如果要是输出字符,可以输出它的ASCI码0x5E