1. 程式人生 > >JAVA 按位運算符的解釋

JAVA 按位運算符的解釋

按位運算符 位運算 按位

按位運算符

Java定義了幾個按位運算符,可以將其應用於整數類型long,int,short,char和byte。

按位運算符對位執行,並執行逐位運算。假設a = 60和b = 13; 現在以二進制格式,他們將如下 -

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a | b = 0011 1101

a ^ b = 0011 0001

a = 1100 0011

假設整數變量A保持60,變量B保持13,則 -

public class Test {

   public static void main(String args[]) {
      int a = 60;	/* 60 = 0011 1100 */
      int b = 13;	/* 13 = 0000 1101 */
      int c = 0;

      c = a & b;        /* 12 = 0000 1100 */
      System.out.println("a & b = " + c );

      c = a | b;        /* 61 = 0011 1101 */
      System.out.println("a | b = " + c );

      c = a ^ b;        /* 49 = 0011 0001 */
      System.out.println("a ^ b = " + c );

      c = ~a;           /*-61 = 1100 0011 */
      System.out.println("~a = " + c );

      c = a << 2;       /* 240 = 1111 0000 */
      System.out.println("a << 2 = " + c );

      c = a >> 2;       /* 15 = 1111 */
      System.out.println("a >> 2  = " + c );

      c = a >>> 2;      /* 15 = 0000 1111 */
      System.out.println("a >>> 2 = " + c );
   }}
輸出結果
a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 15
a >>> 15


總結:

&(按位和)如果二進制AND運算符存在於兩個操作數中,則二進制AND運算符將對結果復制一位。(A和B)將給出12是0000 1100
| (按位或)二進制OR運算符如果存在於任一操作數中,則復制一位。(A | B)將給出61,其為0011 1101
^(按位異或)二進制XOR操作符復制該位,如果它設置在一個操作數中,而不是兩者。(A ^ B)將給出49,其為0011 0001
(按位稱贊)二進制補碼運算符是一元的,具有“翻轉”位的作用。
(A)將給出-61,由於有符號的二進制數,它是2 0的補碼形式的1100 0011。
<<(左移)二進制左移操作符。左操作數值左移由右操作數指定的位數。A << 2將給出240是1111 0000
>>(右移)二進制右移操作符。左操作數值被右操作數指定的位移動。A >> 2將給出15是1111
>>>(零填補右移)右移零填充操作符。左操作數值右移由右操作數指定的位數,移位值用零填充。A >>> 2將給出15是0000 1111


本文出自 “逐夢路上的Man” 博客,請務必保留此出處http://meyangyang.blog.51cto.com/12906086/1926831

JAVA 按位運算符的解釋