a = 0011 1100;
b = 0000 1101;
a&b = 0000 1100 // 按位比较,两个数都为1才为1,否则就是0
a|b = 0011 1101 // 按位比较,如果都为0才为0,否则就是1
a^b = 0011 0001 // 按位比较,如果相同则为0,否则为1
~b = 1111 0010 // 取反
<< 按位左移
>> 按位右移
2 * 8 = 16 2*2*2*2
// 位运算效率极高
<< 相当于 *2
>> 相当于 /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
>>>
运算符会用0填充高位,这与>>
不同,它会用符号位填充高位。<<<
运算符原文:https://www.cnblogs.com/javaupup/p/14243907.html