一、异或运算符^
1,相同为1,不同为0
2,对1进行异或,值不变,对0异或,1变0,0变1
3,应用:值交换
a^b=c;c中的0是ab中不同的位
a^c变化的只是a中与c零所对应的位------> a^c==b
同理b^c==a
所以:a=a^b
b=a^b //此时,a中的零位表示ab对应位置不同,1表示相同;运算后,b为a的值
a=a^b //跟据上述第2点可知运算后ab值已交换
二、取与运算符&
1,都为1才为1,其他为0
2,应用--对2的n次方取余
1010 对4取余得2
0011 2*2*2-1-----再乘2减1是为了使左边出现n个1
----
0010
1,相同为1,不同为0
2,对1进行异或,值不变,对0异或,1变0,0变1
3,应用:值交换
a^b=c;c中的0是ab中不同的位
a^c变化的只是a中与c零所对应的位------> a^c==b
同理b^c==a
所以:a=a^b
b=a^b //此时,a中的零位表示ab对应位置不同,1表示相同;运算后,b为a的值
a=a^b //跟据上述第2点可知运算后ab值已交换
二、取与运算符&
1,都为1才为1,其他为0
2,应用--对2的n次方取余
1010 对4取余得2
0011 2*2*2-1-----再乘2减1是为了使左边出现n个1
----
0010