如何在 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日

6K+ 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告