JavaScriptビット演算をマスター!7つの実践サンプルコード – Japanシーモア

JavaScriptビット演算をマスター!7つの実践サンプルコード

JavaScriptビット演算の実践サンプルコードJS
この記事は約5分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

このサービスは複数のSSPによる協力の下、運営されています。

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、JavaScriptでビット演算を使いこなすことができるようになります。

ビット演算の基本から応用まで、初心者目線で詳しく解説していきます。

また、実践的な7つのサンプルコードもご紹介しますので、ぜひ参考にしてください。

●ビット演算とは

○ビット演算の基本

ビット演算とは、コンピュータが扱うデータの最小単位であるビット(0と1)を操作する計算方法です。

JavaScriptでビット演算を行うには、ビット演算子を使います。

ビット演算子には、ビット反転、ビット論理積、ビット論理和、ビット排他的論理和、ビットシフトなどがあります。

●ビット演算の使い方

ここでは、実践的な7つのサンプルコードを使って、JavaScriptでのビット演算の使い方を解説します。

○サンプルコード1:ビットの反転

このコードでは、ビット反転演算子を使ってビットの反転を行う方法を紹介しています。

この例では、数値のビット表現を反転させています。

function bitInversion(num) {
  // ビット反転演算子「~」を使ってビットを反転させる
  return ~num;
}

console.log(bitInversion(5)); // -6

○サンプルコード2:ビットの論理積(AND)

このコードでは、ビット論理積演算子を使ってビットの論理積(AND)を計算する方法を紹介しています。

この例では、2つの数値のビット表現で1の位置が一致している部分だけを抽出しています。

function bitAND(num1, num2) {
  // ビット論理積演算子「&」を使ってビットの論理積を計算する
  return num1 & num2;
}

console.log(bitAND(5, 3)); // 1

○サンプルコード3:ビットの論理和(OR)

このコードでは、ビット論理和演算子を使ってビットの論理和(OR)を計算する方法を紹介しています。

この例では、2つの数値のビット表現で1の位置がどちらかに存在する部分を抽出しています。

function bitOR(num1, num2) {
  // ビット論理和演算子「|」を使ってビットの論理和を計算する
  return num1 | num2;
}

console.log(bitOR(5, 3)); // 7

○サンプルコード4:ビットの排他的論理和(XOR)

このコードでは、ビット排他的論理和演算子を使ってビットの排他的論理和(XOR)を計算する方法を紹介しています。

この例では、2つの数値のビット表現で1の位置が一方のみに存在する部分を抽出しています。

function bitXOR(num1, num2) {
  // ビット排他的論理和演算子「^」を使ってビットの排他的論理和を計算する
  return num1 ^ num2;
}

console.log(bitXOR(5, 3)); // 6

○サンプルコード5:ビットの左シフト

このコードでは、ビット左シフト演算子を使ってビットの左シフトを行う方法を紹介しています。

この例では、数値のビット表現を指定されたビット数だけ左にシフトさせています。

function bitLeftShift(num, shiftCount) {
  // ビット左シフト演算子「<<」を使ってビットを左にシフトさせる
  return num << shiftCount;
}

console.log(bitLeftShift(5, 2)); // 20

○サンプルコード6:ビットの右シフト

このコードでは、ビット右シフト演算子を使ってビットの右シフトを行う方法を紹介しています。

この例では、数値のビット表現を指定されたビット数だけ右にシフトさせています。

function bitRightShift(num, shiftCount) {
  // ビット右シフト演算子「>>」を使ってビットを右にシフトさせる
  return num >> shiftCount;
}

console.log(bitRightShift(20, 2)); // 5

○サンプルコード7:ビットの符号付き右シフト

このコードでは、ビット符号付き右シフト演算子を使ってビットの符号付き右シフトを行う方法を紹介しています。

この例では、数値のビット表現を指定されたビット数だけ右にシフトさせ、符号を維持しています。

function bitSignedRightShift(num, shiftCount) {
  // ビット符号付き右シフト演算子「>>>」を使ってビットを右にシフトさせる
  return num >>> shiftCount;
}

console.log(bitSignedRightShift(-20, 2)); // 1073741819

●注意点と対処法

  1. ビット演算子は整数のみに適用できます。
    小数を扱う場合は、事前に整数に変換してから演算を行ってください。
  2. JavaScriptでは、ビット演算を行う際に数値は32ビット整数に変換されます。
    そのため、大きな数値を扱う場合には、誤った結果が出力される可能性があります。

●カスタマイズ方法

ビット演算子を使用して、さまざまなカスタマイズや応用例を作成することができます。

例えば、ビットマスクを使用してフラグ管理を行ったり、高速な計算処理を実現することができます。

まとめ

この記事では、JavaScriptでビット演算を行う方法について、7つのサンプルコードを通じて詳しく解説しました。

ビット演算は、高速な計算やフラグ管理など、さまざまな応用が可能です。注意点や対処法に気を付けながら、ビット演算を活用してコードを最適化しましょう。

これであなたもJavaScriptのビット演算を使いこなすことができるようになります。

今後のプログラミング作業に役立ててください。