gpt4 book ai didi

javascript - 评估javascript base 10 to base 2转换函数

转载 作者:行者123 更新时间:2023-11-28 21:24:07 28 4
gpt4 key购买 nike

我编写了一个简单的函数来将基数为 10 的数字转换为二进制数。我编写的函数是我使用我所知道的简单工具的最佳尝试。我已经在这个网站上查找了如何执行此操作的其他方法,但我还不太了解它。我确定我编写的函数非常奇怪,但它似乎可以解决问题。

这是一个 jsfiddle 展示它的实际效果: https://jsfiddle.net/unpkt48e/

下面是函数代码:

var toBinary = function(x) {

x = parseInt(x);

if (x < 0) {
var k = '-'
x = Math.sqrt(Math.pow(x, 2));
}

if (x == 0) {
return 0;
}

var y = x;
var g = [];

while (Math.log2(y) >= 0) {
var n = parseInt(Math.log2(y));
g.push(n+1);
y = y - Math.pow(2, n);
}

var binArray = [];
for (var i = 0; i < g[0]; i++) {
binArray.push(0);
}
for (var i = 0; i < g.length; i++) {
binArray[binArray.length-g[i]] = 1;
}

var binary = binArray.join("");
return (k || "") + binary;

};

我还没有很多工具来评估这个,所以我的问题如下:

此函数返回的内容看起来 是正确的,但我如何才能确保我得到的实际上是一个二进制数,而不仅仅是一个看起来像二进制数的字符串。我是否遗漏了一些关键部分?还是我的方法是死胡同?

另外一个问题:JS中是否有内置函数可以帮我做这件事?大多数情况下,这对我来说是一个学习练习,所以我仍然对生成 base10 到 base2 数字转换函数感兴趣。

最佳答案

你可以使用toString() numObj.toString(base) 传基值作为参数,添加Demo

var input = document.getElementById("decimal");
input.addEventListener("input", getBinary);

function getBinary() {
var decimal = document.getElementById("decimal").value;
var binary = Number(decimal).toString(2);
document.getElementById("binary").innerHTML = binary;
};
body {
margin-left: 20px;
font-family: monospace;
font-size: 18px;
}
p { display: inline-block; }
<body>
<p>Enter a number here:</p>
<input id="decimal"><br><br>

<p>This is that number but in binary:</p><br>
<p id="binary" style="border: 1px solid black; height: 20px;min-width :100px"></p>
</body>

关于javascript - 评估javascript base 10 to base 2转换函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44961231/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com