JavaScript で数値をバイナリ形式に変換する
数値を 2 進数に変換することは、非常に複雑なプロセスです。座って数値を手動で変換する場合、結果はエラーが発生しやすくなります。数値をバイナリ形式に変更するにはどうすればよいですか?JavaScript には、そうするための多くの組み込み関数がありません。JavaScript で数値を 2 進数に変換する方法を紹介します。
JavaScript で数値を 2 進数に変換する関数を作成する
コードに進む前に、10 進数(基数 10)から 2 進数(基数 2)への変換プロセスを知る必要があります。簡単にするために、この記事では正の整数の変換について説明します。したがって、負の整数と浮動小数点数の変更は、この記事の範囲外です。
変換プロセスを理解する
整数(または JavaScript の数値)を指定すると、数値を 2 で除算し、数値が 2 未満になるまで余りをキャプチャします。たとえば、数値が 25 の場合、次のようになるまで 25
を 2
で除算し続けます。2 未満の商。
除数 | 商 | 残り | ビット |
---|---|---|---|
25/2 | 12 | 1 | 0 |
12/2 | 6 | 0 | 1 |
6/2 | 3 | 0 | 2 |
3/2 | 1 | 1 | 3 |
1/2 | 0 | 1 | 4 |
数字を高いものから低いものへと読みます。したがって、番号 25 のバイナリ値は 1101 です。
次の一連の計算を使用して、2 進数が正しい 10 進数を表しているかどうかを確認します。2 進数で表される各ビットに 2
を掛けて、ビット位置の値(0 から開始)に電力を供給します。
= 2^4*(1) + 2^3*(1) + 2^2*(0) + 2^1*(0) + 2^0*(1)
= 16 + 8 + 0 + 0 + 1
= 25
数値をバイナリ形式に変換する JavaScript コード
上記の方法で次のコードを作成します。関数 convertToBinary1
は、パラメーターとして渡された 10 進数に相当する 2 進数をコンソールします。結果を逆方向に読み取ることに注意してください。したがって、コードは前述のすべての要素を念頭に置いて作成されています。
反復の使用
function convertToBinary1(number) {
let num = number;
let binary = (num % 2).toString();
for (; num > 1;) {
num = parseInt(num / 2);
binary = (num % 2) + (binary);
}
console.log(binary);
}
window.onload = function() {
console.log(convertToBinary1(25));
console.log(convertToBinary1(8));
}
出力:
11001
1000
ステップ
-
関数に渡されたパラメーターのコピーを作成し、一時変数
num
に格納します。 -
バイナリビットを格納する変数を作成します。取り扱いを容易にするために、基本的に文字列型です。
-
2 進ビットを生成するための反復を開始し、数値が 2 で割り切れなくなるまで続けます。
各反復で、数値を
2
で割って商を取得します。商のモジュラスを計算します。このステップでは、2 の数値のモジュラスがバイナリビット0
または1
を生成するため、バイナリビットが生成されます。 -
モジュラス値によって生成されたバイナリビットを、各反復で生成されたバイナリビットを保持するバイナリ変数に追加します。
-
数値が
2
で割り切れなくなると(条件(num / 2)> 1 でチェック)、反復は停止します。 -
最後のステップでは、結果をコンソールに記録します。したがって、この関数にパラメーターとして渡された 10 進数に相当する 2 進数を取得します。
再帰の使用
再帰法を使用して、10 進ビットを 2 進に変換できます。このアプローチでは、必要なコード行は少なくなりますが、より多くの思考が必要になります。再帰は、番号が 2 で割り切れなくなると停止し、ブレークアウト状態に達するまで自分自身を呼び出し続けます。再帰は洗練されていますが、単純な反復アプローチよりも関数呼び出しスタックの方が多くのメモリを消費します。
function convertToBinary(number, bin) {
if (number > 0) {
return convertToBinary(parseInt(number / 2)) + (number % 2)
};
return '';
}
window.onload = function() {
console.log(convertToBinary(25));
console.log(convertToBinary(8));
}
出力:
11001
1000
toString(2)
関数を使用して数値を 2 進数に変換する
toString()
関数は、数値を文字列に変換するのに非常によく知られています。ただし、これを使用して、数値をバイナリ形式に変換することもできます。通常、これは Number
オブジェクトとともに使用され、数値をバイナリ形式に変換します。以下の例に示すように、javascript の toString(2)
関数を数値オブジェクトで使用すると、数値に相当するバイナリが返されます。このメソッドは、基数の値を入力として受け取ります。したがって、これを使用して、指定された数値を他の基数システム(16 の基数(16 進数)や 8 の基数(8 進数)など)に変換できます。
(8).toString(2)(25).toString(2)(235).toString(2)
出力:
"1000"
"11001"
"11101011"
toString(2)
メソッドの戻りタイプは文字列のままであることに注意してください。したがって、数値を文字列形式のバイナリビットに変換します。