在 JavaScript 中将数字转换为二进制格式
将数字转换为二进制是一个相当复杂的过程。如果我们坐下来手动转换数字,结果很容易出错。我们如何将数字更改为二进制格式?JavaScript 没有很多内置函数可以这样做。我们将介绍如何在 JavaScript 中将数字转换为二进制。
在 JavaScript 中创建一个将数字转换为二进制的函数
在进入代码之前,我们需要了解从十进制数(基数为 10)到二进制数(基数为 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
,为位位置值(从 0 开始)提供动力。
= 2^4*(1) + 2^3*(1) + 2^2*(0) + 2^1*(0) + 2^0*(1)
= 16 + 8 + 0 + 0 + 1
= 25
将数字转换为二进制格式的 JavaScript 代码
我们在上面讨论的方法上构建以下代码。函数 convertToBinary1
控制作为参数传递的十进制数的二进制等价物。请注意,我们向后读取结果。因此,在考虑所有上述因素的情况下创建了代码。
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 生成二进制位0
或1
。 -
将由
modulous
值生成的二进制位附加到保存每次迭代中生成的二进制位的二进制变量中。 -
一旦数字不再能被
2
整除(检查条件(num / 2)> 1),迭代停止。 -
在最后一步,我们将结果记录到控制台。因此,我们得到作为参数传递给该函数的十进制数的二进制等效项。
使用递归
我们可以使用递归方法将十进制位转换为二进制位。这种方法需要更少的代码行,但需要更多的思考。当数字不再能被 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)
函数将数字转换为二进制
toString()
函数对于将数字转换为字符串非常熟悉。但是,我们也可以使用它来将数字转换为其二进制格式。通常,它与 Number
对象一起使用以将数字转换为二进制格式。javascript 的 toString(2)
函数在用于数字对象时,返回数值的二进制等效项,如下面的示例所示。该方法将基数值作为输入。因此,我们可以使用它来将给定的数字转换为其他基本系统(如 16 的基数(十六进制)和 8 的基数(八进制))。
(8).toString(2)(25).toString(2)(235).toString(2)
输出:
"1000"
"11001"
"11101011"
请注意,toString(2)
方法的返回类型仍然是字符串。因此,它将数字转换为字符串格式的二进制位。
相关文章
在 JavaScript 中跟踪鼠标位置
发布时间:2024/03/16 浏览次数:188 分类:JavaScript
-
在本教程中,我们将了解如何在 JavaScript 中使用鼠标事件跟踪鼠标位置。
在 JavaScript 中将 Base64 转换为图像
发布时间:2024/03/16 浏览次数:77 分类:JavaScript
-
将 Base64 字符串转换为图像的最简单方法是调用启动图像构造函数并将 base64 字符串作为图像源的函数。此解决方案需要最少的代码行和努力来获得更好的结果。此外,还有一些复杂的实
使用 JavaScript 将图像转换为 Base64 字符串
发布时间:2024/03/16 浏览次数:144 分类:JavaScript
-
本文将讨论如何通过创建画布并将图像加载到其中,并使用文件读取器方法获取图像的相应字符串,将图像转换为其 base64 字符串表示。
在 JavaScript 中操作图像
发布时间:2024/03/16 浏览次数:175 分类:JavaScript
-
本文将介绍 JavaScript 中的图像处理功能。我们将使用 CamanJS 这是一个 JavaScript 库来操作图像。
在 JavaScript 中交换图像
发布时间:2024/03/16 浏览次数:134 分类:JavaScript
-
本教程展示了如何使用 JavaScript 简单地交换图像。你将学习如何使用不同的方法交换图像,例如使用 onclick、鼠标单击和按钮单击。
使用 JavaScript 将 SVG 转换为 PNG
发布时间:2024/03/16 浏览次数:121 分类:JavaScript
-
本教程教授如何从 SVG 创建 PNG 图像。我们将使用 Canvg JavaScript 库和 toDataURL 方法。