IRONSOFTWAREHOME

C#のバイナリOR演算子を理解する

C# のバイナリ: 10 分以内で理解できるバイナリ OR 演算子。

Tim Corey

5 分 54 秒

C#のバイナリ操作は、ビット単位の操作、特にフラグ、パーミッション、低レベルのデータ処理を扱う際に不可欠です。 基本的な二項演算子のひとつに、OR (`) があります。|演算子 彼のビデオ Binary in C#:10分以内でわかる二項論理和演算子では、ティム・コーリーがC#で二項論理和演算子がどのように機能するのか、そしてその実用的な応用例を説明しています。 それでは、彼の説明を順を追って見ていきましょう。

バイナリ OR 演算子の紹介

ティムは、C#のバイナリ演算を理解するシリーズの続きからビデオを始めます。 シリーズ5回目となるこのレッスンでは、OR演算子に焦点を当てます。 彼は基本的なシナリオを設定し、2つの整数値であるVal2が2進数形式で表現されています。 これらの値は、バイナリでどのように表示されるかを明確に視覚的に表現するために、コンソールに表示されます。

ビット単位の OR を理解する

この時点で、ティムはバイナリ比較でOR演算子が何をするのかを説明します。 彼は、OR演算子が対応する位置にある2つのバイナリ値の各ビットを比較することを明確にしています。 どちらかのビットが1になります。 両方のビットが0になります。

これを実証するために、彼は2つの値を比較する例を説明します:

  • Val1 = 1101 (2進数表示)
  • Val2 = 0010 (2進数表示)

ティムは、それぞれのビット位置で、少なくともどちらかの値が1になることを強調します。 それ以外の場合は0のままです。

Implementing OR in C#

ティムは、OR演算を実行する実際のコードを書くことに移る。 彼は、OR 演算の結果をシングルパイプを使って新しい変数に代入する (`)|演算子

// Define two binary values as integers
int Val1 = 0b1101; // Binary representation: 1101
int Val2 = 0b0010; // Binary representation: 0010

// Perform the bitwise OR operation
int result = Val1 | Val2;

// Print the result to the console
Console.WriteLine(Convert.ToString(result, toBase: 2)); // Output: 1111 in binary

説明

  • 2進数の値は、C#での直接的な2進数入力を容易にする0bプレフィックスを使用して定義されています。
  • ビットごとのOR演算の結果はresult変数に格納されます。
  • Convert.ToString(result, toBase: 2)は整数の結果を、その2進数形式を表す文字列に変換し、表示できるようにします。

ティムは重要な違いを指摘します: ifステートメント内の論理式では、|| for logical OR, whereas in bitwise operations, we use a single |個々のビットで動作するように

アウトプットの理解

OR 演算を実行した後、Tim は結果をコンソールに表示します。 出力は、ORがビットレベルでどのように機能するかを示します:

  • 1101|0010 = 1111

結果の各ビットは次のルールに従います: 1になります。 これは、ORがどのように2進数を結合するかを明確に視覚化したものです。

入力値の修正

コンセプトを強化するために、ティムはVal2を変更してOR演算子が異なる入力にどのように反応するかを観察します。 彼は1010に変更し、再度操作を実行します。 その結果、ORロジックとの一貫性が保たれます:

  • 1101|1010 = 1111

ティムは、指定された位置で少なくとも1つの数が1になることを指摘します。

論理 OR 対 ビット単位の OR

ティムは、論理和()と論理積()の違いについて簡単に説明します。||) and bitwise OR (|`)。 論理 OR は、次のようなブール条件に使用されます:

// Example of logical OR in a conditional statement
if (condition1 || condition2) 
{
    // Execute if either condition1 or condition2 is true
}

一方、Bitwise ORは、このレッスンで見たように、ビットレベルでの2進演算に使用されます。

ビット毎論理和の実用的なアプリケーション

Timは最後に、ビット単位のORが役立つ実用的なシナリオについて説明します。 一般的な使用例の1つに、フラグベースの設定があります。 例えば、異なる許可フラグがバイナリ値として格納されている場合、ORを使用してそれらを効率的に組み合わせることができます。

例えば、フラグベースのシステムでは

  • READ_PERMISSION = 0001
  • WRITE_PERMISSION = 0010
  • EXECUTE_PERMISSION = 0100

ユーザーが読み取りと書き込みの両方のパーミッションを必要とする場合、ORを使用してそれらを組み合わせることができます:

// Define permission flags as constants
const int READ_PERMISSION = 0b0001;
const int WRITE_PERMISSION = 0b0010;

// Combine read and write permissions using bitwise OR
int userPermissions = READ_PERMISSION | WRITE_PERMISSION; // Result: 0011

// Print the user permissions in binary
Console.WriteLine(Convert.ToString(userPermissions, toBase: 2)); // Output: 0011

Timは、既存の値に影響を与えることなく、このようなフラグの組み合わせを処理する際に、ORが特に有用であることを強調しています。

最終的な考え

動画が終わると、ティムは重要なポイントをまとめます:

  • ビット毎論理和 (`|) は、2 つの数値の対応するビットを比較します。
  • どちらかのビットが1です。
  • この演算子は、フラグと設定を効率的に組み合わせるためによく使用されます。
  • 論理ORとは異なります。||これはブール式に使用されます。

Timの説明と例に従うことで、C#で二項OR演算子がどのように機能し、どこで効果的に適用できるかをしっかりと理解することができます。

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。