&=

名称

&=

説明

&=は、変数と定数とを組み合わせて使い、変数の特定のビットをLOW(0)にするためによく使われる。これは、プログラミングガイドで、クリアやリセットと呼ばれる。

0  0  1  1    operand1
0  1  0  1    operand2
----------
0  0  0  1    (operand1 & operand2) - returned result

書式

x &= y; // equivalent to x = x & y;

引数

x任意の変数。利用可能な型: char, int, long。
y任意の変数もしくは定数。利用可能な型: char, int, long。

使用例

0とビット単位のANDをとったビットは0にクリアされるので、myByteがbyte 型の変数であれば、

1
myByte & 0b00000000 = 0;

となる。

1とビット単位のANDをとったビットは変更されないので、

1
myByte & 0b11111111 = myByte;

となる。

注意

ビット単位演算ではビットを扱うため、定数にはバイナリ形式を使うのが便利だ。数字は他の表現形式と同じ値だが理解するのが難しい。わかりやすさのために0b00000000を使うが、どんな形式でも0は0である。

さらに、変数のビット0と1をクリア(ゼロに設定)し、他のビットは変えたくないときには、0b11111100を&=で適用すればいい。

1  0  1  0  1  0  1  0    variable
1  1  1  1  1  1  0  0    mask
----------------------
1  0  1  0  1  0  0  0

bits unchanged bits cleared

変数のビットをxで表すと以下のようになる。

x  x  x  x  x  x  x  x    variable
1  1  1  1  1  1  0  0    mask
----------------------
x  x  x  x  x  x  0  0

bits unchanged bits cleared

よって、

1
2
myByte = 0b10101010;
myByte &= 0b11111100;  // results in 0b10101000

参照

言語 &(ビット単位のAND演算子)

オリジナルのページ

https://www.arduino.cc/reference/en/language/structure/compound-operators/compoundbitwiseand/

Last Revision: 2020/12/26

最終更新日

January 4, 2024

inserted by FC2 system