ホームページ  >  記事  >  Java  >  Java ビット演算 (シフト、ビットごとの AND、OR、XOR、NOT)

Java ビット演算 (シフト、ビットごとの AND、OR、XOR、NOT)

高洛峰
高洛峰オリジナル
2016-12-16 17:02:041212ブラウズ

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、否定 Add 1 to 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 です
.println(-5 >>> 3); // 結果は 536870911

// 4. ビット AND ( & )
// ビット AND: 最初のオペランドの n 番目のビットが n 番目のビットに位置します2 番目のオペランドの両方が 1 の場合、n 番目の結果も 1 になり、それ以外の場合は 0 になります
System.out.println(5 & 3);// 結果は 1 になります
System.out.println(4 & 1) );// 結果は 0

// 5. ビットごとの OR ( | )
// n 番目のビットの 1 つが 1 である限り、最初のオペランドの n 番目のビットは 2 番目のオペランドの n 番目のビットに位置します。の場合、結果の n 番目のビットも 1 になり、それ以外の場合は 0 になります
System .out.println(5 | 3) // 結果は 7

// 6. ビット XOR ( ^ )
// n 番目最初のオペランドのビットが 2 番目のオペランドの n 番目のビットと反対の場合、結果の n 番目の値も 1 になり、それ以外の場合は 0 になります
System.out.println(5 ^ 3) //結果は 6 になります
;
// 7. ビット not ( ~ )
// オペランドの n 番目の値 ビットが 1 の場合、結果の n 番目のビットは 0 になり、その逆も同様です。
System.out.println(~5);//結果は -6 です
}
}



その他の Java ビット操作 (シフト、ビット AND、OR、XOR、NOT) 関連PHP 中国語 Web サイトの記事に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。