ビット操作
TypeScriptでビット操作を行う方法
TypeScriptでビット操作を行う
ビットとは、コンピュータが情報を扱う最小単位であり、0と1の二値で表現されます。ビット操作は、これらのビットに対して直接的な操作を行う手法であり、効率的なデータ処理やアルゴリズムの最適化に役立ちます。
ここでは、TypeScriptを用いたビット操作の基本的な使い方を紹介します。
ビット列の表現
はじめのページに書いた通り入力は文字列で、ビット列を表現するならビットの0と1が連続したものです。例えば"1011"のような文字列をビット列として扱います。 しかし文字列のままではビット操作ができません。ビット列は数値型に直して扱う必要があります。
TypeScriptでは、parseInt関数を使ってビット列の文字列を対応する数値(number型)に変換できます。また、数値はtoString関数を使ってビット列の文字列に戻すことができます。
ビット変換
ビット列の使用例
ビット列を使用することで、効率的なデータ処理やアルゴリズムの実装が可能になります。以下に使用例を示します。
AさんとBさんが0-9の数字の書かれたカードをそれぞれ持っているとします。同じ数字のカードを持っているかどうかを判定するために、ビット列を使用します。10枚のカードに対応する10ビットのビット列を用意し、各ビットがその数字のカードを持っているかどうかを示します。"1"はカードを持っていることを示し、"0"は持っていないことを示します。
例えば、Aさんが{1, 3, 5, 9}のカードを持っている場合、左を0としてビット列は"0101010001"となります。同様に、Bさんが{2, 3, 6}のカードを持っている場合、ビット列は"0011001000"となります。
AND演算を行えば、簡単に重複を判定できます。2つのビット列のANDを取って"0000000000"つまり数値型の0でない場合は、重複があることになります。
重複の判定
まとめ
TypeScriptでビット操作を行う方法について説明しました。ビット列の表現方法や基本的なビット操作、使用例を通じて、ビット操作の基礎を理解できたかと思います。
TypeScriptを使う現場での実業務ではなかなか出番がないかもしれませんが、ビット操作は効率的なデータ処理やアルゴリズムの最適化に役立つため、ぜひ活用してみてください。