我正在用JavaScript写一个十进制到二进制转换器,并且我遇到了这个问题。
这是我的代码。
function binaryConverter(x)
{
if(x === "")
{
return 0;
}
let binaryArray = new Array(128, 64, 32, 16, 8, 4, 2, 1);
let result = new Array();
let newX;
//pelda: x = 75
for(let i = 0; i < binaryArray.length; i++)
{
if(binaryArray[i] <= x)
{
result.push('1');
newX = x - binaryArray[i]; // 75 - 64 = 11 | 11 - 8 = 3 | 3 - 2 = 1
x = newX;
}
else
{
result.push('0');
}
}
writeBinaryNumber(result);
}
function writeBinaryNumber(ar)
{
for (let i = 0; i < ar.length; i++)
{
document.write(ar[i]);
}
}
使用document.write()可以正常工作(我只用数字75对其进行了测试,我知道二进制代码的第一部分是0,我将对其进行修复。)。但我想与我的HTML连接。我想返回一个变量,其中包含数组中的字符,但我不能。在带有迭代器的C ++中,它可以工作,但是我对javascript不熟悉,我用Google搜索解决方案,但找不到。如果有人知道解决方案,请写下来!谢谢!
使用数组join()
方法将数组中的所有字符串连接为单个字符串。
let binary_number = ar.join('');
您可以这样做
document.getElementById('demo').innerHTML = ar.join('')
function binaryConverter(x) {
if (x === "") {
return 0;
}
let binaryArray = new Array(128, 64, 32, 16, 8, 4, 2, 1);
let result = new Array();
let newX;
//pelda: x = 75
for (let i = 0; i < binaryArray.length; i++) {
if (binaryArray[i] <= x) {
result.push('1');
newX = x - binaryArray[i]; // 75 - 64 = 11 | 11 - 8 = 3 | 3 - 2 = 1
x = newX;
} else {
result.push('0');
}
}
writeBinaryNumber(result);
}
binaryConverter(75)
function writeBinaryNumber(ar) {
document.getElementById('demo').innerHTML = ar.join('')
}
#demo{
color:red
}
<p id="demo" ></p>