Arduino日本語リファレンス


& (AND)

原文

C++のAND(論理積)演算子&は、2つの整数の間で使われます。AND演算子は値の各ビットに対して個別に、次のようなルールで計算を行います。

どちらのビットも1なら1
そうでないならば0

0 0 1 1 値1
0 1 0 1 値2
----------
0 0 0 1 (値1 & 値2) の結果

Arduinoのint型は16ビットの値なので、2つのint型の値に対してAND演算を行うと、16回のAND演算が同じように繰り返されることになります。

int a =  92;    // 二進数の 0000000001011100
int b = 101;    // 二進数の 0000000001100101
int c = a & b;  // 計算結果 0000000001000100 (十進数の68)

aとbの16ビットそれぞれに対してAND演算が行われ、その結果がcに入ります。結果を二進数で表記すると0000000001000100で、十進数では68です。

ある整数から特定のビットを選択することが、AND演算の一般的な使い方の1つです。これをマスキング(マスクする)といいます。OR演算子の項にマスクの例があります。



[目次へ戻る]

Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください [ドキュメント一覧]