W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
按位操作符作用于其操作數的各個位。Java按位運算符可以應用于整數types: long,int,short,char,byte
。
下表列出了所有Java按位運算符。
運算符 | 結果 |
---|---|
~ | 按位一元NOT |
& | 按位AND |
| | 按位或 |
^ | 按位異或 |
>> | 向右移動 |
>>> | 右移零填充 |
<< | 向左移動 |
&= | 按位AND分配 |
|= | 按位OR分配 |
^= | 按位異OR分配 |
>>= | 右移賦值 |
>>>= | 右移零填充分配 |
<<= | 向左移位 |
按位運算符分配將賦值與按位運算組合。以下兩個語句是等效的:
a = a >> 4; a >>= 4;
以下兩個語句是等效的:
a = a | b; a |= b;
以下程序演示了按位運算符分配:
public class Main { public static void main(String args[]) { int a = 1; int b = 2; int c = 3; a |= 2; b >>= 2; c <<= 2; a ^= c; System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c); } }
此程序的輸出如下所示:
左移位算子,<<移位所有位中的一個值到左邊一個指定的數字的時間。
它有這種一般形式:
value << num
以下代碼移位字節(jié)類型變量。
public class Main { public static void main(String args[]) { byte a = 64, b; int i; i = a << 2; b = (byte) (a << 2); System.out.println("Original value of a: " + a); System.out.println("i and b: " + i + " " + b); } }
此程序生成的輸出如下所示:
每個左移具有使原始值加倍的效果。以下程序說明了這一點:
public class Main { public static void main(String args[]) { int num = 0xFFFFFFF; for (int i = 0; i < 4; i++) { num = num << 1; System.out.println(num); } } }
程序生成以下輸出:
右移位運算符>>
將值中的所有位向右移a指定次數。
其一般形式如下所示:
value >> num
num
指定要向右移位的位置數。
以下代碼段將值 32
向右移兩個位置:
public class Main { public static void main(String[] argv) { int a = 32; a = a >> 2; System.out.println("a is " + a); } }
輸出:
Java無符號,右移運算符,>>>
,始終將零轉移到高階位。
其一般形式如下所示:
value >>> num
num
指定要向右移位的位置數。
以下代碼顯示如何使用無符號右移。
public class Main { public static void main(String[] argv) { int a = -1; a = a >>> 24; System.out.println("a is " + a); } }
輸出:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: