ビット演算

ビット演算

整数は 10 進数、2 進数、16 進数のいずれの形でも書けることを思い出しておきましょう。

13(10 進数)= 0b1101 = 0xd

> 関数 binStringhexString を使うと、整数の 2 進表現と 16 進表現をそれぞれ得ることができます。

2 進数の値を扱えるようになる利点は、頻繁に行う計算のステップを最適化したり、真偽値の列を高速に扱えたりすることです。

2 進数とは何か

2 進数は、数値であると同時に真偽値の配列としても捉えることができます。整数は 64 ビットなので、1 つの整数で 64 個の真偽値を表現できます。以下では、1 のビットが true、0 のビットが false に対応すると考えます。

使用できる演算子と関数

LeekScript のビット演算子は次のとおりです。

専用の関数もビット単位の操作を助けてくれます:testBitsetBitbitCountbitLengthtrailingZerosleadingZeros

64 ビットを超える整数を扱うには、BigInteger を参照してください。

ビットマスク

ビットマスクは、数値の特定のビットやビットのまとまりの値を取り出すために使います。

インデックス N のビットの値を取り出す

インデックス N の値を取り出すには:

連続する N ビットの値を取り出す

下位 N ビットの値を取り出すには:

ここで 0b111...111 は 1 が N 個並んだ 2 進数で、2**N-1 と等しくなります。