1

コード行を見る

if(display & (1<<2))

1<<2 とはどういう意味ですか?

そして、 & はビットごとの AND 演算子であると考えるのは正しいですか?

4

1 に答える 1

7

ビットごとの左シフト演算子です。オペランドは 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

于 2013-09-23T15:55:26.917 に答える