java位運算

java 位運算(移位、位與、或、異或、非)

public class Test {

public static void main(String[] args) {

// 1、左移( << ) // 0000 0000 0000 0000 0000 0000 0000 0101 然後左移2位後,低位補0://

// 0000 0000 0000 0000 0000 0000 0001 0100 換算成10進制為20

System.out.println(5 << 2);

// 運行結果是20

// 2、右移( >> ) 高位補符號位

// 0000 0000 0000 0000 0000 0000 0000 0101 然後右移2位,高位補0:

// 0000 0000 0000 0000 0000 0000 0000 0001

System.out.println(5 >> 2);// 運行結果是1

// 3、無符號右移( >>> ) 高位補0

// 例如 -5換算成二進制後為:0101 取反加1為1011

// 1111 1111 1111 1111 1111 1111 1111 1011

// 我們分別對5進行右移3位、 -5進行右移3位和無符號右移3位:

System.out.println(5 >> 3);// 結果是0 System.out.println(-5 >> 3);// 結果是-1

System.out.println(-5 >>> 3);// 結果是536870911

// 4、位與( & )

// 位與:第一個運算元的的第n位於第二個運算元的第n位如果都是1,

那么結果的第n為也為1,否則為0

System.out.println(5 & 3);

// 結果為1 System.out.println(4 & 1);// 結果為0

// 5、位或( | )

// 第一個運算元的的第n位於第二個運算元的第n位

只要有一個是1,那么結果的第n為也為1,否則為0

System.out.println(5 | 3);// 結果為7

// 6、位異或( ^ )

// 第一個運算元的的第n位於第二個運算元的第n位

相反,那么結果的第n為也為1,否則為0

System.out.println(5 ^ 3);//結果為6

// 7、位非( ~ )

// 運算元的第n位為1,那么結果的第n位為0,反之。

System.out.println(~5);// 結果為-6

}

}

相關詞條

相關搜尋

熱門詞條

聯絡我們