Javaのビット演算子とは何ですか? そしてそれは分類です(例を使って)

公開: 2021-05-20

Javaは、インドで最も有力なプログラミング言語の1つであり、市場シェアの約20%を占めています Javaのビット演算子は、スタンドアロンビットに対して指定された操作を一度に1つずつ実行する記号/表記法です。 2進数の個々のビットを操作するために使用され、char、int、long、short、byteなどのさまざまな整数型で使用できます。

Javaビット演算子は、大きく7つのタイプに分類できます。

Javaのビット演算子シンボル説明
ビットごとのAND | 結果が両方のオペランドに存在する場合にのみ、結果のビットを保持します。
ビットごとのOR 2つのオペランドのいずれかに存在する場合、ビットを保持します。
ビット単位のXOR ^ 両方ではなく一方のオペランドにのみ存在する場合、ビットを保持します。
ビット単位の補完 1の補数とも呼ばれます。 オペランドのビットを逆にするだけです。
ビット単位の左シフト<< 左のオペランドのビットは、右のオペランドで指定された桁数だけ左にシフトされます。
署名された右シフト>> 左のオペランドのビットは、右のオペランドで指定された桁数だけ右にシフトされます。
符号なし右シフト>>> SIGNED RIGHT SHIFTに加えて、シフトされたビットがゼロで埋められるのとまったく同じです。

ここで、Javaの各ビット演算子について詳しく見ていきましょう

目次

1.または(A | B)

真理値表

A B 出力
0 0 0
0 1 1
1 0 1
1 1 1

A = 1011 1110

B = 0011 0101

A | B = 1011 1111

構文

クラスメイン{

public static void main(String [] args){

intオペランド1=190、オペランド2 = 53、出力;

//ビット単位のOR190〜53

出力=operand1| オペランド2;

System.out.println(output); //プログラムは191を出力します

}

}

2. AND(A&B)

真理値表

A B 出力
0 0 0
0 1 0
1 0 0
1 1 1

A = 1011 1110

B = 0011 0101

A&B = 0011 0100

構文

クラスメイン{

public static void main(String [] args){

intオペランド1=190、オペランド2 = 53、出力;

//ビット単位のOR190〜53

出力=operand1| オペランド2;

System.out.println(output); //プログラムは52を出力します

}

}

  1. 排他的論理和/XOR(A ^ B)

真理値表

A B 出力
0 0 0
0 1 1
1 0 1
1 1 0

A = 1011 1110

B = 0011 0101

A ^ B = 1000 0011

構文

クラスメイン{

public static void main(String [] args){

intオペランド1=190、オペランド2 = 53、出力;

//ビット単位のOR190〜53

出力=operand1| オペランド2;

System.out.println(output); //プログラムは131を出力します

}

}

3.補完(A〜B)

10進数では、数値Aのビット単位の補数は–(A + 1)です。 ただし、バイナリドメインでは、最初に1の補数を計算してから、2の補数に変換して目的の出力を取得する必要があります。

1の補数–ビットを逆にするだけです。 例えば:

A = 1011 1110(190)

1のAの補数=01000001

2のAの補数=1のAの補数+1= 0100 0010

構文

クラスメイン{

public static void main(String [] args){

intオペランド4=190、出力;

//190のビット単位の補数

出力=〜operand4;

System.out.println(output); //-191を出力します

}

}

  1. 左シフト(A << 1)

A =10111110と仮定します

A << 1 =?

Javaのこのビット演算子は、すべてのビットを1だけ左にシフトします。つまり、出力は0111 1100です。左端のビット(最上位ビットまたはMSB)は破棄され、右端の空の場所に0が追加されます(最下位ビットまたはLSB)。 これは、右側のすべての空いている場所に対して行われます。

構文

クラスメイン{

public static void main(String [] args){

intオペランド=3; //バイナリ– 11

//1ビット左シフト演算

intoutput=オペランド<<1;

System.out.println(output); //2を出力します

}

}

4.署名された右シフト(A >> 2)

Javaのこのビット演算子は、指定された桁数だけビットパターンを右にシフトします。 LSBは破棄され、MSBは符号ビットで埋められます。 0は正の符号を表し、1は負の符号を表します。

構文

クラスメイン{

public static void main(String [] args){

intオペランド1=2;

intオペランド2=-2;

//2ビット符号付き右シフト

System.out.println(operand1 >> 2); //1を出力します

System.out.println(operand2 >> 2); //-1を出力します

}

}

5.符号なし右シフト(A >>> 2)

ここでの操作は、空の左端のビットが符号ビットではなく0に置き換えられることを除いて、SIGNEDRIGHTSHIFTとまったく同じです。

構文

クラスメイン{

public static void main(String [] args){

intオペランド=240; // 2進数– 1111 0000

//2ビットの符号なし右シフト

System.out.println(オペランド>>> 2); //60を出力します

}

}

世界のトップ大学からオンラインでソフトウェアエンジニアリングコース学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

結論

Javaをマスターし、それでキャリアを築くことに熱心ですか? upGradのSoftware&Technologyトラックをチェックしてください。 フルスタック開発の13か月のエグゼクティブPGプログラムに登録して、実際のプロジェクトで手を汚してください。 評判の高いIIITバンガロアと提携し、16のプログラミング言語とツールを学ぶ機会があり、3つの就職の面接が保証されています。

ビット演算子とは何ですか?

ビット演算子は、オペランドの各ビットを操作し、1と0の形式で結果を返します。 ほとんどのビット演算子は、さまざまなマスクの作成に使用されます。これらのマスクを使用して、ビットフィールドの作成、データ型のサイズの変更、およびデータ型の整列を行うことができます。 ビット演算子は、2進数に対してビットごとの演算を実行するために使用されます。 これは、ビットレベルの操作でより効率的になるために使用されます。 非整数データ型の変数にビット演算子を使用することはできません。

Javaのビット演算子の種類は何ですか?

Java言語では、算術演算子の他に、ビット演算子も使用されます。 ビット演算子はごくわずかですが、非常に役立ちます。 Javaには6つの演算子があります。 それらは、ビットごとのAND、ビットごとのOR、ビットごとのXOR、ビットごとの左シフト、ビットごとの右シフト、および1の補数です。 これらの演算子は、byte、short、int、long、およびcharの整数型に適用できます。

Javaプログラミング言語の特徴は何ですか?

Javaは、汎用のオブジェクト指向プログラミング言語です。 Javaアプリケーションは通常、バイトコードにコンパイルされ、Java仮想マシンで実行されます。 Javaは、さまざまなプラットフォームで実行するように設計されています。 また、分散コンピューティング環境で使用するように設計されています。 Javaプログラミング言語で記述されたプログラムは、JavaアプリケーションまたはJavaアプリケーション環境と呼ばれます。 Javaプログラミング言語は、強力で柔軟な言語です。 多くの場合、Javaアプリケーションは、平均的なWebアプリケーションよりも大きく複雑です。 Javaプログラミング言語は汎用言語です。 あらゆる目的のアプリケーションを作成するために使用できます。 マルチスレッド、ネットワーキング、セキュリティ、永続性などの機能により、Javaはさまざまな用途に適しています。