ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript のビットごとの演算子のアプリケーションの簡単な分析_JavaScript スキル
ほとんどの言語はビットごとの演算子を提供しています。ビットごとの演算子は c や c などの言語で広く使用されていますが、JS や AS などのスクリプト言語では適用例が少ない場合があります。ビットごとの演算子を使用すると良い結果が得られます。
以下は、私自身の知識に基づいた js でのビット演算の使用についての簡単な話です (他の言語にも当てはまります)。間違いがあれば修正してください。
ビット演算子は、オペランドを数値ではなく一連の個々のビットとして扱います。その前に、「ビット」とは何かについて触れておく必要があります。
数値または文字は、0 と 1 のシーケンスとしてメモリに格納されます。それぞれの 0 と 1 はビットと呼ばれます。たとえば、10 進数のデータ 2 は、次のように格納されます。メモリ内のビット値を変更すると、この値の意味も変わります。たとえば、2 の前を 1 つ移動すると、記憶装置は 0 0 0 になります。 0 0 1 0 0。この値は 10 進数の 4 を表します。これがビット単位演算子の動作原理です。
6 つのビット演算子があります
& ビット単位 AND
| ビット単位または
^ ビット単位 XOR
~ 否定
>> 右シフト
<<左に移動
1 & 演算子
& は、オペランド内の対応するビットを特定の方法で結合します。対応するビットがすべて 1 の場合、結果は 1 になります。は 0、結果は 0
1 と 3 の結果は 1
どのように機能するかを見てみましょう:
1 のバイナリ表現は 0 0 0 0 0 0 1
3 のバイナリ表現 Expressed as 0 0 0 0 0 1 1
& の規則に従って得られた結果は 0 0 0 0 0 0 0 1 です。10 進数表現は 1
任意のビットが 0 である限り、& 演算の結果は 0 になるため、& を使用して変数の不要なビットを 0 に設定できます。たとえば、変数のバイナリ表現は 0 1 0 0 です。 1 0 0 1, I 下位 4 ビットを保持したい場合は、& 0x0F を使用して上位 4 ビットを削除します (覚えておいてください: 0x0F は 16 進表記で、対応する 2 進数は 0 0 0 0 1 1 1 1 です)。この機能には非常に重要な用途があります。後で説明します。
2 | 演算子
| の違いは、対応するビットのオペランドが 1 の場合、結果は 1
1 になることです。
^ 演算子は | に似ていますが、1 つの違いは、両方の演算ビットが 1 の場合、結果は 0
0 1 0 0 0 0 0 1
0 1 0 1 になることです。 1 0 1 0
は 0 0 0 1 1 0 1 1
を生成します
~ はビット単位の否定であり、1 は 0 に変化し、0 は 1 に変化します
<
は左に移動し、>> は右に移動します。 、空いたビットは 0
たとえば、0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 (10 進数 16387) を左に 2 桁移動すると、
0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 となります。 0 (10 進数の 12)
を右に 2 桁移動したものは
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 (10 進数 4096)
以下では、いくつかの具体的なアプリケーションを紹介します
前述したように、2 は 1 桁進められて 4 になります。この機能は、乗算演算を実行するために使用できます
2 <<1 =4
3 <<1 = 6
4 <<1 = 8
同様に>>
任意の小数は整数に丸めることができます
例: 3.14159 >> 0 = 3;