ホームページ >バックエンド開発 >C#.Net チュートリアル >C言語で「||」は何を意味しますか?
C言語では、「||」は論理演算子(or)を表し、そのオペランドはブール型です。つまり、値は「0」(falseを表す)と「0」の2つだけです。 「1」(真を表します)。 C 言語では、論理演算ではゼロ以外の値はすべて 1 として扱われると規定されています。
C 言語では、「||」は論理演算子 (or) を表し、そのオペランドはブール型、つまり「0」のみ ( 「偽」を意味します)と「1」(真を意味します)。 C 言語では、論理演算ではゼロ以外の値はすべて 1 として扱われると規定されています。
(推奨チュートリアル: C 言語チュートリアル )
同様の演算子に「|」というビット演算子 (or) があり、そのオペランドはビット シーケンスです。ビット シーケンスには、文字型、整数型、長整数型または短整数型などを指定できます (通常は符号なし整数型が選択されます)。ビット演算では、対応するビット間の論理演算を行うため、論理的にはビット演算処理には複数の論理演算処理が含まれます。
以下では、2 つの違いを理解するために例を使用します。
#include <stdio.h> int main (void) { unsigned int x = 0x1101; unsigned int y = 0x1100; /*逻辑操作*/ printf("sizeof(x || y): %d\n", sizeof(x || y)); if(x||y) { printf("x || y : %d(True) \n", x||y); } else { printf("x || y : %d(False) \n", x||y); } /*位操作*/ printf("sizeof(x | y): %d\n", sizeof(x | y)); printf("x | y : %x \n", x|y); return 0; }
変数 x も変数 y も 0 ではないため、ステートメント if(x||y) を実行すると 1 が返されます。 x|y (つまり、1101|1100) を実行すると、対応するビットが 1 つずつ論理 OR されるため、結果は 1101 になります。
プログラムの実行結果は次のとおりです:
sizeof(x || y): 4 x || y : 1(True) sizeof(x | y): 4 x | y : 1101
以上がC言語で「||」は何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。