演算子&| ^〜>> <<説明

バイトは「バイト、」ビット」である『ビット; = 8 1』ビットのバイト、

文字、文字を表現する2バイトでのJavaの.java就業ユニコード、2バイト(16ビット)である。

チャー16 2バイト

バイト8ビット1バイト

バイトの短い16ビット2

INT 32ビット4バイト

バイト長は64ビット8

フロート32ビット4バイトの

ダブル64ビット、8バイトは、

どのように多くの0x7FFFFFFFでカウントすることができ
4ビット各進数、8進数は、正確に整数1つの整数、従って4バイトである
F 1111バイナリコードである
0111 7のバイナリコード
結果として、全体のバイナリ整数表現は0x7FFFFFFFであります最初の0であることに加えて、1が静止している
場合、これは最大の整数intは(最初のものは符号ビットであるため、0は、彼は正の数であることを示している)であり

、オペレータが個々のビットの一連の通りであるオペランドビット代わりに、数値の、「ビット」ものに言及する必要が前になるように:
値または文字は0と1、0と1のシーケンスとしてメモリに記憶されているが、各Aと呼ばれビットは、例えば、10進データがコンピュータに格納されている2は、00000010のビット(ここでは1つのバイトは、例えば、特定の数、です この意味での値を表し、我々はメモリのビットの値を変更するプログラミング言語を使用するように決定)は、例えば0000010に記憶部2の前に今モバイル一つとして、変更されています0は、この値はビット演算器の原理に従う小数4を表す。

ビット演算子6
&ビット単位のAND
|ビットごとのOR
^ビット単位のXOR
〜ネゲートは
>>右
<<左

1、&演算子
、操作に対応する特定の方法のビット数が1であることとバイナリ演算子である、方法で対応するビットの組み合わせならいずれかのビットが0つまり0結果である場合、結果は1である
1&1は3の結果である
:それはどのように実行するかを見て
バイナリ1は、0000001のように表される
0 0 3バイナリとして表さ00011
ルール&GETに応じて結果が00000001で、10進数表現は1である
長い誰もあなたが変数を使用すると、不要に置くことができるように演算の結果は、0&0ではありませんとしてビットがバイナリ変数は01001001として表現されるような、0に設定されている、私は(それには4つ&0x0Fの有する高を排除するために低い4を維持したい注:0x0Fの16進数、バイナリ00001111に相当する)、この機能は広く符号化に使用されます。

2、|オペレータ
|&区別とは、操作に対応する任意の1ビットが1である場合、結果であるということである
。3件つの結果| 1
3 ^演算子
^とオペレータ|、少し異なります1 2つの動作位置は、その後、結果が'0生成された場合
0 1 0 0 0 0 0 1
0 1 0 1 1 0 1 0
食材を' 0 0 0 1 1 0 1 1
4〜演算子
〜は、ビットごとの否定であります1 0 1に、0〜
5、シフト演算は、オペレータに左右で指定されたビットシフト値をシフト
次いで<< >>左右移動、過剰ビットが失われ、空いたビットに0を埋める
左01000011(十進67)は、2つの67 << 2となるように移動します
 もちろん(小数点以下12)00001100、それは32ビット、オーバーフロー、結果は268ではありませんされているので、あなたが、書かれたJavaコードを使用する場合は、
右に移動する2つの67 >> 2です
000100 0 0(小数点以下16)

以下は、いくつかの特定のアプリケーションが説明
2この機能乗算を利用することができ(オーバーフローと符号ビットの場合を考慮せずに)前進なる挙げ。4
2 << 1 = 4
。3 << 1 = 6
。4が<< 1 = 8は、
同様>>分割を行うことができ

、それを丸めることができる>> 0端数で
3.14159 = 0~3として>>;

^算術魔法特性が提供している
次のコードのよう
- --------------------
 

    int型N1 = 3;
    int型N2 = 4;
    N1 ^ = N2;
    N2 ^ = N1、
    N1 ^ = N2;

そして最後に、私たちが発見、N1 = 4、N 2 = 3、スワップの両方の値

おすすめ

転載: www.cnblogs.com/riverone/p/11904667.html