[Bitwise Operators]
説明
C++におけるビット論理和演算子は、縦棒記号「|」です。&演算子と同様に、|は前後の2つの整数式の各ビットを独立に演算しますが、その動作は(当然ながら)異なります。2つのビットのビット論理和は、入力ビットのどちらか一方または両方が1の場合に1、それ以外の場合は0になります。言い換えると、
0 0 1 1 operand1 0 1 0 1 operand2 ---------- 0 1 1 1 (operand1 | operand2) - returned result
例
以下は、C++ コードの一部で使用されるビット単位の OR の例です。
int a = 92; // in binary: 00000000000000000000000001011100 int b = 101; // in binary: 00000000000000000000000001100101 int c = a | b; // result: 00000000000000000000000001111101, or 125 in decimal.
ビット単位の OR の最も一般的な用途の 1 つは、ビットパックされた数値内の複数のビットを設定することです。
// Note: This code is AVR architecture specific // set direction bits for pins 2 to 7, leave PD0 and PD1 untouched (xx | 00 == xx) // same as pinMode(pin, OUTPUT) for pins 2 to 7 on Uno or Nano DDRD = DDRD | 0b11111100;
参照
- [Language] || Logical OR
- [Example] BitMath Tutorial
Language Reference Home
86Duinoリファレンスのテキストは、Arduinoリファレンスを改変したもので、Creative Commons Attribution-ShareAlike 3.0ライセンスに基づいてライセンスされています。リファレンス内のコードサンプルはパブリックドメインとして公開されています。