溫馨提示×

Java 中的位運算與移位運算詳解

小云
119
2023-08-14 13:07:39
欄目: 編程語言

位運算和移位運算是 Java 中常用的運算符,用于對數字的位進行操作。下面是位運算與移位運算的詳細解釋:

  1. 位運算符:
  • 按位與(&):對兩個數的二進制進行按位與操作,只有兩個操作數對應位都為1時,結果位才為1,否則為0。

  • 按位或(|):對兩個數的二進制進行按位或操作,只有兩個操作數對應位都為0時,結果位才為0,否則為1。

  • 按位異或(^):對兩個數的二進制進行按位異或操作,只有兩個操作數對應位不同時,結果位才為1,否則為0。

  • 按位取反(~):對一個數的二進制進行按位取反操作,將0變為1,將1變為0。

  1. 移位運算符:
  • 左移(<<):將一個數的二進制表示向左移動指定的位數,右側補0,相當于將原數乘以2的移動位數次方。

  • 右移(>>):將一個數的二進制表示向右移動指定的位數,左側補上符號位(正數補0,負數補1),相當于將原數除以2的移動位數次方。

  • 無符號右移(>>>):將一個數的二進制表示向右移動指定的位數,左側補0,不考慮符號位。

位運算和移位運算常用于處理二進制數據,能夠提高效率和節省空間。例如,可以使用位運算判斷一個數是否為奇數,使用移位運算進行乘除法計算。此外,位運算和移位運算還可以用于對字節、整數等數據進行位操作和位存儲。

以下是一些位運算與移位運算的示例:

int a = 5;
int b = 3;
int c = a & b;  // 1 (000001)
int d = a | b;  // 7 (000111)
int e = a ^ b;  // 6 (000110)
int f = ~a;     // -6 (111110)
int g = a << 2;  // 20 (00010100)
int h = a >> 1;  // 2 (00000010)
int i = a >>> 1; // 2 (00000010)

需要注意的是,位運算和移位運算只能作用于整數類型(byte、short、int、long),不能作用于浮點數類型(float、double)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女