ビットシフトというのは、 2進数で表した整数を右または左に移動するということです。 右ビットシフトなら、最上位ビットに0を補填して最下位ビットを消し、 左ビットシフトなら、最上位ビットを消して最下位ビットに0を補填します。 例えば2進数で0111(=7)を1つビットシフトすると、 左ビットシフト 右ビットシフト 0111 1110(=14) 0011(=3) 基本的には、左ビットシフトするというのは2をかける、 右ビットシフトするというのは2で割るということです。 JavaScriptではこの演算を次のように表します。 7 << 1 7 >> 1 上が1つ左ビットシフトする、 下が1つ右ビットシフトするということを表しています。 負の整数を左ビットシフトすると、 11111111111111111111111111111111(=-1) << 2 => 111111111111111