コード行を見る
if(display & (1<<2))
1<<2 とはどういう意味ですか?
そして、 & はビットごとの AND 演算子であると考えるのは正しいですか?
コード行を見る
if(display & (1<<2))
1<<2 とはどういう意味ですか?
そして、 & はビットごとの AND 演算子であると考えるのは正しいですか?
ビットごとの左シフト演算子です。オペランドは 32 ビット整数に変換され、左側のオペランドのビットは右側のオペランドで定義された位置の数だけ左にシフトされ、式の値が結果になります。
簡単な例を次に示します。
var a = 1;
var b = a << 2; // Move the bit left by two places
console.log(b); // "4"
これが機能するのは、符号付き 32 ビット整数で1
は、バイナリで次のようになるためです。
00000001
そのビットを左の 2 つの場所に移動すると、次のようになります。
00000100
...あなたが得る4
。