首先介绍一下基本的位操作:位操作的是整数基本数据类型中的单个比特,即操作的是 二进制
================================= =================================
按位操作符:
& 按位与操作
| 按位或操作
^ 按位异或操作
~ 按位非操作
================================= =================================
& ==== 如果输出位都是 1 ,那么输出 1
例: 5 & 3 = 1
101
&011 << ==== >> 001 = 1
================================= =================================
| ==== 如果输出位有一个是 1 ,那么输出 1
例: 5 | 3 = 7
101
| 011 << ==== >> 111 = 7
================================= =================================
^ ==== 如果输出位有一个是 1,但不全是 1 ,那么输出 1
例: 5 ^ 3 = 6
101
^011 << ==== >> 110 = 6
================================= =================================
~ ==== 按位取反
例:5 的2进制表示是 : 00000000 00000000 00000000 00000101
==> ~5 = 11111111 11111111 11111111 11111010 = -(1073741824 - 5)
================================= =================================
移位操作运算:是对int基本类型的二进制的移位运算
移位操作符: << ,>> ,>>>
>> :右移,若符号位为正,高位补0,反之相反 比如 10 >> 2 <==> 1010 >> 2 <==> 0010 <==> 2
<< :左移,向左移动 比如 10 << 2 <==> 1010 << 2 <==> 101000 <==> 40
>>>:右移,无乱正负,最高位都插入0