JavaScriptで整数を2進数に変換する方法
JavaScriptで整数を2進数に変換する基本の考え方
JavaScriptで整数を2進数に変換するには、対象の整数を2で割り、その都度発生する余りを順番に記録していく方法が使われます。余りは必ず0か1になるため、計算が終わった後にこれらを逆順に並べると、元の整数の2進数表現が完成します。
なお、実際の開発では toString(2) メソッドを使えば1行で変換できますが、ここでは変換の仕組み(アルゴリズム)を理解できるよう、剰余演算を用いた実装例を紹介します。
サンプルコード
function convertDecimalToBinary(value) {
var binaryValues = [];
var counter = 0;
while (value > 0) {
binaryValues[counter++] = parseInt(value % 2);
value = parseInt(value / 2);
}
for (var j = counter - 1; j >= 0; j--)
process.stdout.write(binaryValues[j] + "");
}
convertDecimalToBinary(5);プログラムの実行方法
上記のプログラムはNode.js環境で動作します。実行するには、ターミナルで以下のコマンドを入力してください。
node fileName.js
ここでは、ファイル名を「demo255.js」としています。
実行結果
コンソールには次のような出力が表示されます。
PS C:\Users\Amit\javascript-code> node demo255.js
101
このように、10進数の「5」は2進数では「101」に変換されて出力されます。処理の流れとしては、「5 ÷ 2 = 2 余り 1」「2 ÷ 2 = 1 余り 0」「1 ÷ 2 = 0 余り 1」という計算が繰り返され、余りの「101」を逆順に出力することで正しい2進数が得られます。
-
JavaScriptで2進数の配列を対応する整数に変換する方法
まず、0と1だけを含む数値の配列を用意します。const arr = [0, 1, 0, 1];ここでの課題は、配列に対して呼び出すと、その配列が表す2進数に対応する10進数の整数を返す関数 toBinary() を作成することです。例えば、配列が以下の場合を考えてみましょう。const arr = [1, 0, 1, 1];この場合の出力は 11 になるはずです。2進数「1011」の10進数表現が11だからです。それでは、この関数を実装していきましょう。方法1: parseInt() ライブラリメソッドを使うJavaScriptには parseInt() という組み込みメソッドがあります。こ
-
JavaScriptで二分探索木(BST)に特定の値が存在するかどうかを判定する方法
本記事では、BinarySearchTree(二分探索木)データ型のプロトタイプに、引数として渡された値がBST内に存在するかどうかを判定するJavaScript関数 contains を実装する方法を解説します。二分探索木における探索の仕組み二分探索木では、「左の子孫は親ノードより小さく、右の子孫は親ノードより大きい」という性質が成り立ちます。この性質を利用すると、1回の比較ごとに探索対象を左右どちらかに絞り込めるため、平均計算量 O(log n) で効率的に値を検索できます。実装例コードは以下の通りです。// class for a single Node for BST class No