Cのビット演算子[コーディング例付き]
公開: 2020-10-26目次
序章
演算子は、すべてのプログラミング言語の重要なコンポーネントです。 これらは、特定の論理演算、数学演算、またはその他のプログラミング演算を実行するために使用される記号です。 Cは、算術演算、論理演算、ビット演算など、複数の演算を実行するためのさまざまな演算子を提供します。 Cには8つの異なるタイプの演算子があります。これらは次のとおりです。
- Cの算術演算子
- Cの論理演算子
- Cの条件演算子
- Cの関係演算子
- Cのインクリメントおよびデクリメント演算子
- Cのビット演算子
- Cの代入演算子
- Cの特殊演算子
この記事では、Cのビット演算子とその実装方法について学習します。
ビット演算子とは何ですか?
Cのビット演算子は、ビット配列、ビット文字列、およびビットレベルの個々のビットを使用したバイナリ値の微調整を操作する演算子の一種です。 電子機器およびIoT関連の操作を処理するために、プログラマーはビット演算子を使用します。 ビットレベルでより高速に動作できます。
ビット演算子 in Cは、オペランドの個々のビットに対して演算を実行します。ここで、オペランドは、演算子が演算される値または式です。 これらの演算子は、プロセッサの直接サポートを必要とするコアアクションや高レベルの算術演算を実行するためにも使用されます。 さらに、ビット単位の演算子を、その動作原理に基づいて、論理(ビット単位のAND、OR、およびXOR)、シフト(右シフトおよび左シフト)、および補数(ビット単位のNOT)の3つのサブタイプに細分類できます。
Cには6つの異なるビット演算子があります。 これらは:
・ビットごとのAND演算子(&)

・ビットごとのOR演算子(|)
・ビット単位の排他的論理和演算子(^)
・バイナリ1の補数またはビット単位のNOT演算子(〜)
・ビット単位の左シフト演算子(<<)
・ビット単位の右シフト演算子(>>)
ビット単位の演算子を使用すると、プログラマーはオペランドに含まれる任意の値の個々のビットを変更できます。 コンピュータメモリの1バイトを8ビットと見なすことができます。これは、8つのフラグの真または偽のステータスを示します。 ビット単位の演算子は通常、オペレーティングシステムとドライバーソフトウェアのフラグ値を定義するために適用されます。 たとえば、ファイルプロパティでは、読み取り専用モードはオペレーティングシステムでフラグビットとして概念的に表現され、ビット演算子はtrue値とfalse値を切り替えるために使用されます。
これは、ビット演算子の計算結果を示す表です。
バツ | y | x&y | x | y | x ^ y |
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
Cには6つの異なるタイプのビット演算子があります。 これらは:
CのビットごとのAND(&): Cコンパイラは、&演算子を使用したビットごとのANDを認識します。 2つのオペランドを取り、2つのオペランド番号のすべてのビットに対してAND演算を実行します。 二項演算子です。 この演算子の出力は、両方のビットが1の場合にのみ1になります。

CのビットごとのOR(|): CコンパイラはビットごとのORを|で認識します。 オペレーター。 2つのオペランドを取り、2つのオペランド番号のすべてのビットに対してOR演算を実行します。 二項演算子でもあります。 2ビットのいずれかが1の場合、この演算子の出力は1になります。
Cのビット単位XOR(^): Cコンパイラは、^演算子を使用してビット単位XORを認識します。 2つのオペランドを取り、2つのオペランド番号のすべてのビットに対してXOR演算を実行します。 二項演算子でもあります。 両方のビットの値が異なる場合、この演算子の出力は1になります。
Binary Oneの補数またはCのビット単位のNOT演算子(〜): Cコンパイラは、ビット単位のNOT with〜演算子を認識します。 1つのオペランドのみを取り、そのすべての桁の反転を実行します。 単項演算子です。 この演算子の出力は、そのオペランドの既存のすべてのビットを反転します。
Cのビット単位の左シフト演算子(<<): Cコンパイラは、この<<で左シフト操作を認識します。 2つのオペランドのみを取り、最初のオペランドのすべてのビットを左にシフトします。 2番目のオペランドは、この演算子がビットをシフトする場所の数を決定します。 二項演算子です。
Cのビット単位の右シフト演算子(>>): Cコンパイラは、この>>で左シフト操作を認識します。 2つのオペランドのみを取り、最初のオペランドのすべてのビットを右にシフトします。 2番目のオペランドは、この演算子がビットをシフトする場所の数を決定します。 二項演算子です。
読む: Pythonの演算子:算術、リレーショナル、論理などの初心者向けガイド
Cのビット演算子のプログラム
ここで、すべてのビット演算子を使用してプログラムを見てみましょう。
#include <stdio.h>
int main()
{{
unsigned char x = 20、y = 21; // x = 20(00010100)、y = 21(00010101)
int g = 0;
g = x&y; / * 20 = 010100 * /
printf(”ビット単位のANDの結果は%d \ n”、g);
g = x | y; / * 21 = 010101 * /
printf(”ビット演算の結果は%d \ n”、g);
g = x ^ y; / * 1 = 0001 * /
printf(”ビット単位のXORの結果は%d \ n”、g);
g =〜x;
printf(”ビット単位のNOTの結果は%d \ n”、g);
g = x << 1;
printf(”ビット単位の左シフトの結果は%d \ n”、g);
g = x >> 1;
printf(”ビット単位の右シフトの結果は%d \ n”、g);
0を返します。
}
出力:
ビットごとのANDの結果は20です
ビットごとのORの結果は21です
ビット単位のXORの結果は1です。
BitwiseNOTの結果は-21です。

ビット単位の左シフトの結果は40です。
ビット単位の右シフトの結果は10です。
また読む: Pythonチュートリアル:セットアップ、ツール、機能、アプリケーション、利点、比較
結論
ビット演算子は、ビットレベルのプログラミングに使用されるCの特定のタイプの演算子です。 データを表す際にスペースを節約する効率的な方法をもたらすため、ビット演算子の使用法を知っておくことが重要です。 プログラマーは、システムプログラミング、組み込みプログラミング、プロトコルの設計など、さまざまな分野でこれらの演算子を使用します。 したがって、プログラマーはその使用法を知る必要があります。
upGradは、フルスタック開発のソフトウェア開発スペシャライゼーションにおけるupGradのPGディプロマで、Cを使用したプログラミングとさらに多くのプログラミングを提供します。 フルスタック開発者として浮上し、素晴らしいアプリケーションのいくつかを構築することを学ぶためのプログラム。 これは、ライブプロジェクトと課題に取り組み、15のプログラミング言語とツールのトレーニングを含む12か月の広範なプログラムです。 それに加えて、模擬面接や就職支援など、常にキャリアをサポートしています。