&(AND)

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

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

0011 値1
0101 値2
-------
0001 (値1&値2)の結果

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

int a =  92;   //二進数の0000 0000 0101 1100
int b =101;   //二進数の0000 0000 0110 0101
int c = a & b;  //計算結果0000 0000 0100 0100 (十進数の68)

aとbの16ビットそれぞれに対してAND計算が行われ、その結果がcに入ります。
結果を二進数で表記すると0000 0000 0100 0100で、十進数では68です。
ある整数から特定のビットを選択する事が、AND演算の一般的な使い方です。
これをマスキング(マスクする)といいます。