C言語のビット演算子

Bitwise Operators C Language



ビットレベルのコーディングとしてよく知られているビット単位の演算子は、ビットレベルでのみデータを解釈するためにキャストオフされています。 Bitwiseは、ビットレベルで1つまたは追加のビットパターンと2進数に対して演算を実行します。これらは、数値計算の推定進行を高速化するために使用されています。これは2つの数値で構成され、1つは0で、もう1つは1です。これは、この記事で説明するビット単位の演算子です。

Linuxシステムからログインし、Ctrl + Alt + Tショートカットを試してコンソールターミナルを開きます。 C言語でのビット演算子の操作について詳しく説明する例をいくつか示します。各ビット演算子について個別に詳しく説明しましょう。







ビットごとのAND:

ビットごとの演算子は、ビットが両方の相互オペランドに存在する場合に、そのビットを結果に複製するために使用されています。 CまたはC ++には、これら2つの整数の各ビットでANDを実行する2つのオペランドが必要です。両方のビットの値が1の場合、ビットごとのAND結果は1になります。したがって、動作を理解するには、Nanoエディターを使用してCタイプのファイルを作成して開きます。そのためには、次のようにシェルでnano命令を消費する必要があります。



$ナノtest.c



次の画像に、ビットごとのAND演算子のコードが表示されています。このコードをそのままGNUNanoエディターファイルtest.cに書き込むだけです。このコードにはstdio.hヘッダーライブラリがあり、これがないとCプログラミングでコーディングを行うことができません。次に、戻り型が整数のmainメソッドを作成しました。 C言語では、コードの実行はmainメソッドを介して行われます。したがって、2つの整数型変数xとyを宣言し、それに応じて値35と13を指定しました。その後、値としてゼロを使用して別の整数変数が指定されました。最初の2つの整数変数を使用し、それらの間にビット単位のAND演算子を適用します。この作業は、AND演算子が&として使用されている次の行で実行され、結果の値はnull変数zに格納されます。次に、printステートメントを使用して結果の値をターミナル画面に表示し、mainメソッドを閉じます。 GNUショートカットCtrl + Sを使用してファイルを保存し、キーボードタイプライターからCtrl + Xを使用してnanoエディターを終了します。





したがって、ファイルを保存した後、上記のコードをコンパイルする瞬間です。ファイルの名前をtest.cとして使用するか、ファイルに名前を付けてEnterキーを押しながら、コンソールシェルでgcc命令を使用します。エラーが表示されていないことがわかります。これは、コードが手動で正しいことを意味します。



$gcctest.c

コードをコンパイルしたら、今度はコードを実行します。この目的のために、シェルで以下のクエリを実行します。出力は結果として1を示しています。これは、両方の整数変数のビットの1つに1があることを意味します。これが1を返す理由です。

$/a.out

ビットごとのOR:

ここで、ビットごとのOR演算子を詳しく説明します。ビットごとの演算子は、ビットの1つが1の場合、結果として1を返します。2つの整数の両方のビットが0の場合、0になります。すべてのビットを取得した後、ビットのセットが生成されます。それらのビットが何個形成されたかを確認する必要があります。したがって、最初に同じtest.cドキュメントを開きます。 Ctrl + Sキーを使用して、以下に示すコードを入力し、GNUファイルに保存します。コードは、上記のビットごとのAND演算子の例とほぼ同じです。今回は、整数xの値を47に変更し、OR演算子を使用しました。 |両方の変数の間。ファイルを終了してコードをコンパイルします。

ドキュメントtest.cを正常に実行すると、47出力ビットが表示されます。

$/a.out

ビットごとのXOR:

両方の数値ビットが異なる場合、ビット演算子は1を返します。したがって、ビットが同じである場合、0が生成されます。^演算子記号はビット単位の演算子を表します。もう一度、ドキュメントを開き、GNUファイルエディタで同じ古いコードを記述します。今回は2つの整数変数内で^演算子を使用しており、結果はターミナルで出力するときにz変数に格納されます。

ファイルtest.cをコンパイルして実行すると、結果として34が返されます。これは、XOR演算子が2つの整数変数に適用された後に、新しい整数34が生成されることを意味します。

$/a.out

ビット単位の補数:

この演算子は単一の変数にのみ適用され、ビット番号の値を元に戻します。たとえば、0ビットを1に、1を0ビットに変更します。同じファイルに同じコードを記述しますが、6行目で少し変更を加えます。xの逆をzに割り当てました。

ファイルをコンパイルして実行します。 Cでは、ビット単位の補数の結果が負の符号で1ずつ増加しています。

左シフト演算子:

ビットの場所をある程度シフトします。以下に添付されている画像にも同じコードを表示できます。この例では、2ビットを左にシフトします。

出力には、新しく生成された値として188が表示されます。

$/a.out

右シフト演算子:

以下のコードに示すように、左シフトと同じように機能しますが、方向が逆になります。

今回は、2ビットを右側にシフトしたときに出力として11を取得しました。

$/a.out

結論:

この記事では、C言語コードの基本的な6つのビット演算子をすべて説明しました。私たちのガイドからあなたが望むものを手に入れることを願っています。