Java定義了位運算符,應用於整數類型(int),長整型(long),短整型(short),字符型(char),和字節型(byte)等類型。
位運算符做用在全部的位上,而且按位運算。假設a = 60,和b = 13;它們的二進制格式表示將以下:
A = 0011 1100 http://www.iis7.com/b/yqlj/ 批量友情連接檢測
B = 0000 1101
-----------------
A&b = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011
下面列出了位運算符的基本運算,假設整數變量A的值爲60和變量B的值爲13:
操做符 描述 例子
& 按位與操做符,當且僅當兩個操做數的某一位都非0時候結果的該位才爲1。 (A&B) 獲得12,即0000 1100
| 按位或操做符,只要兩個操做數的某一位有一個非0時候結果的該位就爲1。 (A | B) 獲得61,即 0011 1101
^ 按位異或操做符,兩個操做數的某一位不相同時候結果的該位就爲1。 (A ^ B)獲得49,即 0011 0001
? 按位補運算符翻轉操做數的每一位。 (?A) 獲得-60,即1100 0011
<< 按位左移運算符。左操做數按位左移右操做數指定的位數。 A << 2 獲得240,即 1111 0000
>> 按位右移運算符。左操做數按位右移右操做數指定的位數。 A >> 2 獲得15即 1111
>>> 按位右移補零操做符。左操做數的值按右操做數指定的位數右移,移動獲得的空位以零填充。 A>>>2 獲得15即0000 1111變量