ビット演算子
次の表は、標準のビット演算子はJavaとの説明をしてください。
| 演算子 | 説明 |
|---|
| & | ビット演算子と |
| | | インクルーシブ-ビットまたは(または通常として知られる) |
| ^ | ビット単位の排他的論理和(排他的論理として知られて通常) |
| 〜 | ビット単位のない |
これらの機能を説明するビット演算子は、 2つのバイト値を使用することができる、 AとBが、これをJavaで表現される可能性があるバイト型の変数です。 次の表は、 AとBの2進表記( 1バイトは8ビット) 。
| バイト | バイナリ値 |
|---|
| 、 | 01101010 |
| Bに | 11110000 |
テストは、 2つのビット演算子( & )を返しますビットの両方をテストビットが真の場合にtrueを、そうでなければ、このビットがfalseを返します。 次の表は、 AとBの結果
| バイト | ビット |
|---|
| 、 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
| Bに | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| AとB | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
、または( | )の2つのビット演算子をテストし、結果を返す場合にtrueをビットは、テストのいずれか、または両方のビットが真;場合には両方とも虚偽と、 returnビットでも偽です。 次の表は、 AかBの結果
| バイト | ビット |
|---|
| 、 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
| Bに | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| AとB | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
排他的論理演算子( ^ )の2つのテストビットおよび1つの場合にtrueを返しますビット、および1つだけ、そのビットが真、そうでなければ、 2つの値が等しい場合は、このビットがfalseを返します。 次の表は、結果としてBの排他的論理
| バイト | ビット |
|---|
| 、 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
| Bに | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| AとB | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |
していない( 〜 )演算子は、すべてのビット反転は、ゼロになるものはどこにゼロになるものとし、そのためには、単項演算子のオペランドを1つしか使用されていますが、他のビット演算子がテストを見ただけで我々は反対する2つのオペランド(バイナリ演算子)は、 AとBの結果、以下の表に示す操作をしていないバイトa.
| バイト | ビット |
|---|
| 、 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
| ない | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
ビット演算子とは、あるいは、排他的論理演算子とブール表現でも使うことができますが、ブール値として1つのビットだけが含まれて効果的にはtrueまたはfalseのどちらかです。 これをJavaで実装できる以下のとおり:
ブールmusicon =真;ブールtelevisionon =真;ブールarebothon = musicon & televisionon ; / /真のブールareanyon = musicon | televisionon ; / /真televisiononブールisonlyoneon = musicon ^ ; / /虚偽
また、これらの3つの代入演算子ビット演算子は、次の表に示されているようです。
| 演算子 | 説明 |
|---|
| & = | ビット演算子と代入 |
| | = | ビット演算子または代入インクルーシブ- |
| ^ = | ビット単位の排他的排他的論理代入 |