(1)按位与(&):相同的保留,不同的取0;
0101 0101
0011 1101
——————
0001 0101
(2)按位或(|):相同保留,不同取1;
0101 0100
0011 1011
——————
0111 1111
(3)按位异或(^):相同取0,不同取1;
0011 1101
0101 1011
——————
0110 0110
按位异或的特殊用法:
a,使特定的位翻转。
如,使0111 1010的后四个数翻转,即需与 0000 1111异或:
0111 1010
0000 1111
——————
0111 0101
b,二进制全0和全1.
a^a=0;
~(a^~a)=0;
~(a^a)=1;
c,交换两变量的值。
a^=b^=a^=b;
d,判断两个数是否相等。
if(a^a==0);