如何在 JavaScript 中將二進位制轉換為十進位制?
在本教程中,我們將學習如何在 JavaScript 中將二進位制轉換為十進位制。二進位制數用於數位電子學。它是一串由“0”和“1”組成的字串,表示相對於基數 2的數字。
以下是將二進位制數轉換為十進位制的不同方法。
使用 parseInt() 方法
在 JavaScript 中,parseInt() 方法用於從字串中提取數字。我們可以將數字的基數作為引數定義在 parseInt() 方法中。
語法
使用者可以按照以下語法使用 parseInt() 方法將二進位制轉換為十進位制。
let binary = "0101"; let output = parseInt(binary, base);
引數
binary − 它是一個二進位制數字的字串。
base − 它是二進位制字串的基數。在我們的例子中,我們將傳入基數“2”,因此它會從字串中提取二進位制數並將其轉換為十進位制。
示例
在下面的示例中,我們使用了 parseInt() 方法。我們將二進位制字串和基數二作為 parseInt() 方法的引數傳入。我們已經對不同的二進位制字串評估了我們的方法。使用者可以看到輸出,其中我們呈現了二進位制字串的十進位制值。
<html> <head> <title>Convert Binary to decimal in JavaScript.</title> </head> <body> <h2>Convert Binary to decimal using <i> parseInt() </i> method.</h2> <h4>The decimal of 0101 is.</h4> <div id = "decimal1"> </div> <h4>The decimal of 1100011110001 is.</h4> <div id = "decimal2"> </div> <script> let decimal1 = document.getElementById("decimal1"); let decimal2 = document.getElementById("decimal2"); let binary = "0101"; decimal1.innerHTML = parseInt(binary, 2); // we have given based to extract the binary and convert it into the integer binary = "1100011110001"; decimal2.innerHTML = parseInt(binary, 2); </script> </body> </html>
建立自定義函式將二進位制轉換為十進位制
在本節中,我們將建立自定義函式來將二進位制數轉換為十進位制。我們將使用 Math.pow() 函式。通常,二進位制數表示為 2 的冪。
讓我們透過下面的例子來理解它。“110”是二進位制字串,我們可以將其表示為如下所示的十進位制。
'110' = 1*22 + 1*21 + 0*20 = 6 (In decimal)
因此,使用者已經瞭解瞭如何將二進位制轉換為十進位制,我們將在程式碼中應用這種方法。
語法
let decimal = 0; let l = binary.length; for (let i = l - 1; i >= 0; i--) { if ( binary[i] == '1' ) decimal += Math.pow( number ,power );// add power of 2 in the decimal if character of binary string is 1. }
引數
math.pow() 函式接受兩個引數。
number − 它是使用者想要計算冪的數字。在我們的例子中,它是固定的,為 2。
power − 它是第一個引數的冪。我們將使用 for 迴圈傳入不同的值以獲取 2 的不同冪。
示例
在本例中,我們建立了一個函式將二進位制轉換為十進位制。在函式內部,我們正在從後向前迭代二進位制字串的每個字元。
如果我們在二進位制字串中得到“1”,我們根據字元位置使用 Math.pow() 函式在 decimal 變數中新增 2 的冪。當我們在二進位制字串中得到“0”時,我們不會儲存任何值,因為當我們將 2 的冪乘以 0 時,它會返回零。
<html> <head> <title>Convert Binary to decimal in JavaScript.</title> </head> <body> <h2>Convert Binary to decimal in JavaScript using the <i> Math.pow() </i> method.</h2> <h4>The decimal of 101000 is.</h4> <div id = "decimal1"></div> <h4>The decimal of 11101010101 is.</h4> <div id = "decimal2"></div> <script> let decimal1 = document.getElementById("decimal1"); let decimal2 = document.getElementById("decimal2"); function DecimalToBinary( binary ) { let decimal = 0; let l = binary.length; for (let i = l - 1; i >= 0; i--) { if ( binary[i] == '1' ) decimal += Math.pow( 2, l - 1 - i ); } return decimal; } decimal1.innerHTML = DecimalToBinary( "101000" ); decimal2.innerHTML = DecimalToBinary( "11101010101" ); </script> </body> </html>
在本教程中,我們使用了 parseInt() 方法將二進位制轉換為十進位制。此外,我們還建立了一個自定義函式。使用者可以根據自己的理解選擇任一方式。
但是,第二種方法的時間複雜度更高。因此,最好使用第一種方法。