JavaScriptでビット演算をする時に、
整数の仕様などが意外と頭に入っていなかったので、勉強したことをメモしておく。
整数の最大値
安全に計算できるのは、2^53 - 1
までで、それ以上の数字は誤差が出る。
これはJavaScriptの整数が、普通の言語のInt型とかではなくて、浮動小数点で計算されているから。
最大値は Number.MAX_SAFE_INTEGER で取得できる。
ビット演算
ビット演算に限っては32Bitで計算される。
なので、ビット演算を行っていなかった時には保存できていた、32Bit以上の値は、
ビット演算を行った時点で切り捨てられる。
ビット演算と符号
ビット演算の結果は、符号あり32Bitの整数として扱われるが、
符号なしの32Bit整数(intじゃなくてunsigned int)として扱いたい時があると思う。
その場合は、number >>> 0
とすると、32Bit符号なし整数としての値が取得できる。