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

JavaScriptの右シフト演算子(>>)とは?仕組みと使い方を解説

JavaScriptのビット単位の右シフト演算子(>>)とは

右シフト演算子(>>)は、左オペランドの値を、右オペランドで指定されたビット数だけ右へ移動させる演算子です。

たとえば a >> b と書くと、a の値が b ビット分だけ右にずらされます。右に1ビットシフトするごとに値は半分になるため、x >> n は「x を 2 の n 乗で割った値(小数点以下切り捨て)」と同じ結果になります。

使用例

次のコードを実行すると、ビット単位の右シフト演算子の動作を確認できます。

<html>
   <body>
      <script>
         var a = 2; // 2進数表記:10
         var b = 3; // 2進数表記:11

         document.write("(a >> b) => ");
         result = (a >> b);
         document.write(result);
      </script>
   </body>
</html>

この例では、a = 2(2進数で 10)を b = 3 ビット分だけ右へシフトしています。2 を 2 の 3 乗(8)で割ると 0.25 となり、整数部分は 0 になるため、実行結果は (a >> b) => 0 と表示されます。

  1. JavaScriptのビット演算子入門|NOT(~)・左シフト(<<)・右シフト(>>)をわかりやすく解説

    JavaScriptのビット否定演算子(Bitwise NOT:~) チルダ記号(~)を使うビット否定演算子は、数値を32ビットの2進数として扱い、すべてのビットを反転させる演算です。「0」は「1」に、「1」は「0」に変わります。JavaScriptでは ~x の結果は必ず -(x + 1) と等しくなるという特徴があります。 コード例 <html> <body> <p id=not></p> <script> document.getElementById(not).innerHTML = ~ 13; </script

  2. Pythonの右シフト演算子(>>)とは?仕組みと使い方をわかりやすく解説

    右シフト演算子(>>)とはPythonにおける >> は右シフト演算子と呼ばれるビット演算子の一つです。この演算子は、第1オペランドを2進数(ビット列)として扱い、そのビットを第2オペランドで指定された桁数だけ右方向へ移動させます。シフトによって左側に空いた上位ビットには、すべて 0 が設定されます。つまり、正の整数に対しては符号が変わることなく値が半分ずつになっていくイメージです。基本的な動作イメージ数学的な観点で見ると、a >> n は「a を 2 の n 乗で割った商(小数点以下切り捨て)」と同じ結果になります。たとえば 100 >> 2