JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのビット演算子とは?種類と使い方をわかりやすく解説

JavaScriptのビット演算子とは

JavaScriptのビット演算子(Bitwise Operators)は、オペランドを32ビットのビット列(2進数の並び)として扱い、各ビットに対して直接演算を行う演算子です。通常の数値演算とは異なり、ビット単位で処理を行うため、フラグ管理や高速な計算処理などの場面で活用されます。

JavaScriptで利用できる主なビット演算子は、以下の7種類です。

番号演算子と名称
1&
ビットAND(論理積)
2|
ビットOR(論理和)
3^
ビットXOR(排他的論理和)
4~
ビットNOT(否定)
5<<
左シフト(ゼロ埋め)
6>>
右シフト(符号維持)
7>>>
右シフト(ゼロ埋め)

各演算子の役割

&(AND)は両方のビットが1のときに1を返し、|(OR)はどちらか一方が1なら1を返します。^(XOR)は片方だけが1のときに1となり、~(NOT)はすべてのビットを反転させます。また、<<はビットを左へ移動させ、>>は符号を保持したまま右へ移動、>>>は符号に関係なく左側を0で埋めて右へ移動させる演算です。

ビットOR(|)演算子の使用例

ここでは、代表的な例としてビットOR(|)演算子の動作を見ていきましょう。OR演算では、比較する2つのビットのうちどちらか一方でも「1」であれば、結果として「1」が返されます。両方とも「0」の場合のみ「0」となります。

次のコードを実行して、JavaScriptのビットOR演算子の挙動を確認してみましょう。

サンプルコード

<!DOCTYPE html>
<html>
   <body>
      <script>
         document.write("ビットOR演算子<br>");
         // 7 = 00000000000000000000000000000111
         // 1 = 00000000000000000000000000000001
         document.write(7 | 1);
      </script>
   </body>
</html>

実行結果の解説

この例では、数値「7」は2進数で 00000000000000000000000000000111、「1」は 00000000000000000000000000000001 として表されます。OR演算では各桁のビットを比較し、どちらかが1であれば1になるため、結果は 111、すなわち10進数の「7」が出力されます。

このように、ビット演算子を使いこなすことで、数値を2進数レベルで柔軟に操作できるようになります。他の演算子(AND、XOR、シフト演算など)も併せて試してみると、理解がさらに深まるでしょう。

  1. C#のビット演算子とは?種類と使い方をサンプルコード付きで解説

    ビット演算子は、数値を構成する個々のビットに対して直接演算を行うための演算子です。C#では、論理演算とシフト演算を合わせて6種類のビット演算子が用意されており、フラグ管理やパフォーマンスが求められる処理などで活用されます。 C#の主なビット演算子一覧 各ビット演算子の動作は以下のとおりです(例では A = 60、B = 13 を使用しています)。 演算子説明使用例 &二項AND演算子。両方のオペランドで対応するビットが1の場合のみ、そのビットを結果にコピーします。(A & B) = 12(0000 1100) |二項OR演算子。どちらか一方のオペランドでビットが1になっ

  2. C#の後置演算子とは?インクリメント・デクリメントの使い方を解説

    C#の後置演算子とは C#における後置演算子(Postfix Operator)は、変数の値を1つ増減させるための演算子です。主に以下の2種類があります。 後置インクリメント演算子(a++):変数の現在の値を返した後に、値を1増やす 後置デクリメント演算子(a--):変数の現在の値を返した後に、値を1減らす 後置形式では、まず現在の値が式の結果として返され、その後に変数の値が更新されます。これが前置形式(++a)との大きな違いです。前置の場合は、先に値が更新されてから返されます。 基本的な書き方 a++; このコードは、変数aの現在の値を使用した後、aの値を1増やします。 サンプルコー