Arduinoリファレンス

Arduinoリファレンスの日本語訳のページです
garretlab
|=

名称

|=

説明

|=は、変数と定数とを組み合わせて使い、変数の特定のビットをHIGH(1)にするためによく使われる。

書式

x |= y; // x = x | y; と同じ。

引数

x char型、int型、long型の変数。
y char型、int型、long型の変数もしくは定数。

使用例

まず、ビット単位のOR演算子を再確認する。

0 0 1 1 オペランド1
0 1 0 1 オペランド2
------
0 1 1 1 (オペランド1 | オペランド2) - 計算結果

0とビット単位のORをとったビットは変更されないので、myByteがbyte 型の変数であれば、myByte | B00000000 = myByte となる。

1とビット単位のORをとったビットは1に設定されるので、myByte | B11111111= B11111111となる。

さらに、変数のビット0と1を設定(1に設定)し、他のビットは変えたくないときには、B00000011を|=で適用すればいい。

1 0 1 0 1 0 1 0 変数
0 0 0 0 0 0 1 1 マスク
-------------
1 0 1 0 1 0 1 1 変数 | マスク
変更なし(上位6ビット)
        設定(下位2ビット)

変数のビットをxと表したときの結果は以下の通り。

x x x x x x x x 変数
0 0 0 0 0 0 1 1 マスク
-------------
x x x x x x 1 1 変数 | マスク
変更なし(上位6ビット)
        設定(下位2ビット)

よって、myByte = 10101010; のとき、myByte |= B00000011 == B10101011; となる。

注意

特になし。

バージョン

Arduino 1.8.3



メニューを表示するためにJavaScriptを有効にしてください。

inserted by FC2 system