如何在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()方法將二進位制轉換為十進位制。此外,我們還建立了一個自定義函式。使用者可以根據自己的理解選擇任一方法。

但是,第二種方法的時間複雜度更高。因此,最好使用第一種方法。

更新於:2022年8月8日

6000+ 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告