スキルの要約でのJavaの使用とビット演算子

1.(^  排他的論理和演算子

運用ルール:2つのオペランドは、ビットのXOR演算を。同じかかり0、逆がかかり1] すなわち、二つのオペランドは、同じ互いに打ち消し合います

ヒント:

(1)価値交換。INT A = 10; int型、B = 20 ===> A ^ B ^ == B、^ B ^ B == A 

1   INT F = 50 ;
 2   INT G = 60 ;
 3  
4。 F = F ^ G、
 5 G = F ^ G;
 6   F = F ^ G、
 7のSystem.out.println(F + "" + G);
 8  
9。   出力は次のとおりです。6050
コードの表示

(2)対称オフセット伝達。例えば:INT A = 10、INT B = 20、INT C = 30、D = INT 40 ===> A ^ B ^ C ^ D ^ == B ^ C ^ D ^ B ^ C ^ D。 ^^ B == C ^ D ^ B ^ C ^ D ^ A ^ B ^ C ^ D = 0。

性質が奇数の配列内の値のペアを見つけることである2を使用することができます。

1  公共 静的 ボイドメイン(文字列[]引数){
 2  
3。         int型の配列[] = {2,3,4,4,3,5,5,6,6,7,7 };
 4  
5。         INT A = 0 6  
7。         ためINT I = 0;私は<Array.lengthとすること; I ++ ){
 8。 
9。              V ^ = ;配列[I]が
 10  
11          }    
 12は 
13である          のSystem.out.println( "同じではない数:" + V );
 14  
15      }
コードの表示

 

2.( &ビットAND演算子

動作ルール:0 0 = 0; 0&1 = 0; 1&0 = 0; 1&1 = 1、すなわち:[ 同時に2つが"1"であり、結果は"1"で、それ以外は0 ]。もう一つ:否定的な報道の補数形式は、ビット単位のAND演算に参加します。

ヒント:

(1)クリア。あなたはそのすべてのバイナリビットが0の場合でも、ユニットをクリアしたい場合は、限り、あなたはゼロである位相値として、結果はゼロです。

1つの 公共 静的 ボイドメイン(文字列[]引数){
 2          INT A = 50 3          INT B = 60 4          のSystem.out.println(A&B&0)。// 输出0; 
5      }
コードの表示

(2)指定されたビット数を取り

方法:フェッチする数、Xの対応するビットを見つけ、対応するビットの数が1で、残りのビットはゼロであり、この数Xは、「操作」は、Xのビットを指定することが可能です

例:レッツX = 10101110、

    X&= 0000 1110 0000 1111との下位4ビットのうちXを得ることができます。

    Xはまた、2,4,6ポジションを取るために使用することができます。

1つの  公共 静的 ボイドメイン(文字列[]引数){
 2          INT A = 50 3          バイト ABIT =(バイト)。// 00110010 
4          バイト lastTwo =(バイト)3。// 00000011 
5          バイト lastFive =(バイト)31。// 00011111 
6          バイト結果2 =(バイト)(ABIT&lastTwo)。
7          バイト result5 =(バイト)(ABIT&lastFive)。
8  
9         System.out.println(Byte.toString(結果2)); // テイク2 50、出力--- 2の後に
10          のSystem.out.println(Byte.toString(result5)); // 後に取っ5~50ビット--- 18を出力する
。11      }
コードの表示

 

3. (  ビット単位のOR演算子

動作ルール:0 | 0 = 0; 0 | = 1; 1 | 0 = 1; 1 | = 1; すなわち:2つのオブジェクトが操作に関与長い1、1の値がある限りまた、否定的な報道の補数形式は、ビット単位のORに参加します。

ヒント:特定の場所のためのデータ1

例えば:1 Xのセットに対応する番号を見つけ、対応するビットの数が1で、残りのビットはゼロです。この数は、特定の位置でX又はX 1を可能にします。

例:4 XとX = 10100000 1の低い位置| = 1010 1111 0000 1111を得ることができます。

 

4. ( - )非オペレータ

動作ルール:否定演算子NOT演算である、バイナリ1つの1 0,0変異体の変化

後それは001010 1010 110101非動作である
非動作となるINT X    - (X + 1)、すなわち、= -6〜5、〜(-5)= 4

 

5.(<<)の左シフト演算子

動作ルール:のオペランドのすべてのビットの各ビット数を左(バイナリ桁が、左右補体0を破棄しました)。

例:<< 2の2ビット、右0を左=

A = * 2を去った後。 

左がハイレベル、それぞれ左の1が含まれていない廃棄された場合は、同等の数は2倍

 

6.(>>)の右シフト演算子

右側のビット数の数の各々の全てのビットは、左補体正数0、1つの負左右廃棄埋めます。

オペランドすべての右シフト、2で割った数に相当

例えば:右に2ビットのA = A >> 2 A、

見て左塗りつぶし0または1つのアップシフトの数が正または負です。

 

7.(>>>の符号なし右シフト演算子

>>>演算子式2式1ビットで指定された各ビットに権利。右の空いたビット位置に残された後、ゼロで満たされています。右アウト・ビットは破棄されます。

たとえば、次のようにするvar温度= -14 >>> 2

変数TEMPは、14(すなわち、バイナリ1,111,111,111,111,111 1,111,111,111,110,010)が右1073741820(すなわちバイナリ0,011,111,111,111,111 1,111,111,111,111,100)が2に等しいです。

 

おすすめ

転載: www.cnblogs.com/yuerugou54/p/12319286.html