位运算技巧
运算规则
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
使用技巧
0
与任何(也就0或1)'被与数'都得01
与任何'被与数'都得'被与数'自身使用案例
0x10111100 & 0x11101111 = 0x10101100
0x11111111 & 0 = 0
运算规则
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1
使用技巧
0
与任何(也就0或1)'被或数'都得'被或数'自身1
与任何'被或数'都得1使用案例
0x01000011 & 0x00010000 = 0x01010011
n&1=0
为偶数,否则奇数运算规则
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
使用技巧
0
与任何(也就0或1)'被异或数'都得'被异或数'自身1
与任何'被异或数'都得'被异或数'反数(这里说明下反数的定义:1的反数是0,0的反数是1)n^0=n
n^n=0
使用案例
a^=b,b^=a,a^=b
int j = n >> 31, (n ^ j) - j
n^-1=~n