‘%’ 取模运算符运用
防止数组、指针越界
i=(i+1)%最大值; //i下标,i++
"^" 异或运算符
相同为0,相异为1
满足:
恒等律:X ⊕ 0 = X
归零律:X ⊕ X = 0
交换律:A ⊕ B = B ⊕ A
结合律:A ⊕ (B ⊕ C) = (A ⊕ B) ⊕ C
分配律:A · (B + C)= A · B + A · C
A + B · C = (A + B) · (A + C)
(1)快速比较两个值
判断两个int数字a,b是否相等,你肯定会想到判断a - b == 0
,但是如果判断a ^ b == 0
效率将会更高
(2)在汇编语言中经常用于将变量置零:xor a,a
;
(3)我们可以使用异或
来使某些特定的位翻转,因为不管是0或者是1与1做异或将得到原值的相反值;
0 ^ 1 = 1
1 ^ 1 = 0
例如:翻转10100001
的第6位, 答案:可以将该数与00100000
进行按位异或运算;10100001 ^ 00100000 = 10000001