先简单记录下左移、右移,日后再补充。
<< : 左移运算符, num << 1 相当于 num 乘以 2
>> : 右移运算符, num >> 1 相当于num 除以2
亦或运算符 ^
在java的位运算符中有一个异或的运算符,用符号(^)表示,其运算规则是:在两个二进制操作数的相同位中,相同则结果为0,不同则结果为1。
例如:0011^1010 = 1001 2^3 = 其所对应二进制的10^11=01 = 1
亦或运算的结论:
1、一个数与另一个数异或两次是其本身
2、一个数与自身异或,结果是0
3、一个数与零异或,结果是其本身(通过前两条推导)
例:8^9^9 = 8 8^8 = 0
9 ^ 0 = 0
结论:如果有多个数异或,其中有重复的数,不论这些重复的数是否相邻,如果这些数重复了偶数次,则异或后会全部消除;如果这些数重复了奇数次,则会保留一个。