java的位運算符詳解實例——&、^、|、~、<<、>>、>>>

1、&(位運算符AND)

運算時會把十進制的數先轉化爲二進制的數,兩個操作數中位都爲1,結果才爲1,否則結果爲0,看一個簡單的例子。

public class Testdata1 {
public static void main(String[] args) {
int k=12;
int j=123;
System.out.println(k&j);
 }
}

運行結果爲8;因爲12的二進制數爲1101,123的二進制數爲1111011,根據與運算符的運算規律,只有兩個位都是1,結果纔是1,所以結果爲8

2、^(異或運算符

異或運算符是用符號“^”表示的,其運算規律是:
兩個操作數的位中,相同則結果爲0,不同則結果爲1。看一個簡單的例子。

public class Testdata2 {
public static void main(String[] args) {
 int k=12;
 int j=123;
System.out.println(k^j);
  }
}

運行結果爲119,因爲12的二進制數爲1101,123的二進制數爲1111011,根據異或運算的規律,兩個操作數的位中,相同則結果爲0,不同則結果爲1

可以得出其結果爲1110111,轉化爲十進制就是119

3、|(或運算

其運算規律如下:
兩個位只要有一個爲1,那麼結果就是1,否則就爲0,看一個簡單的例子。

public class Testdata3{
public static void main(String[] args) {
 int k=12;
 int j=123;
System.out.println(k|j);
  }
}

運行結果爲127,因爲12的二進制數爲1101,123的二進制數爲1111011,根據或運算的運算規律,兩個位只要有一個爲1,那麼結果就是1,否則就爲0,可以得出結果爲1111111,轉化爲十進制數爲127

4、~(非運算符)

其運算規律如下:

如果位爲0,結果是1,如果位爲1,結果是0,看一個簡單例子。

public class Testdata4{
public static void main(String[] args) {
 int k=-12;

System.out.println(~k);
  }
}

運行結果爲11,因爲-12的二進制數爲11111111111111111111111111110100,根據非運算的運算規律如果位爲0,結果是1,如果位爲1,結果是0,可以得出結果爲1011,轉化爲十進制爲11

5、<<( 左移運算符

其運算規律如下:

var<<n,相當於var乘以2的n次方,看一個簡單的例子。

public class Testdata5 {
public static void main(String[] args) {
int k=2;
     System.out.println(k<<5);
 }
}

運行結果爲32;

6、>>(右移運算符)

其運算規律如下:

var<<n,相當於var除以2的n次方,看一個簡單的例子。

public class Testdata 6{
public static void main(String[] args) {
int k=32;
     System.out.println(k>>5);

 }
}

運行結果爲1;

7、>>>(無符號右移

其運算規律如下:

忽略符號位,空位都以0補齊,看一個簡單的例子。

public class Testdata7 {
public static void main(String[] args) {
int k=32;
     System.out.println(k>>>2);

 }
}

運行結果爲8,因爲32的二進制數爲100000,右移兩位就變爲1000,轉化爲十進制數爲8

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章