我想做一个简单的网站,因为我想学习JavaScript。该网站将只有一个(数字)输入,名为“数字”。单击提交按钮后,网站会将数字从十进制转换为二进制,并显示答案。
这是应该转换数字并在ID =结果的div中显示答案的javascript部分:
var selectedNumber = document.getElementByName("number").value;
var k = [];
var a = 0;
var b = 1;
while (selectedNumber > 1){
if(selectedNumber%2 < 1){
k=k.append(a);
selectedNumber = Math.floor(selectedNumber/2);
}
else{
k=k.append(b);
selectedNumber = Math.floor(selectedNumber/2);
}
}
k=k.append(b);
for i in reversed(k){
document.getElementById("result").innerHETML = i;
}
不幸的是,我没有太多使用javascript的经验,并且此代码无法正常工作。我在python中做了一个类似的程序,并基于python中的代码。
答案 0 :(得分:0)
这是更正的代码: 提示-每当需要粘合两个数字以形成字符串时,请确保执行1 +“” +2
var selectedNumber = 105;//document.getElementByName("number").value;
var k = [];
var a = 0;
var b = 1;
var output = '';
while (selectedNumber > 1){
if(selectedNumber%2 < 1){
k=k+""+a;
selectedNumber = Math.floor(selectedNumber/2);
}
else{
k=k+""+b;
selectedNumber = Math.floor(selectedNumber/2);
}
}
k=k+""+b;
console.log(k);
//document.getElementByName("number").value = k;
答案 1 :(得分:0)
最简单的方法是使用toString(2)
方法。
let a =7
console.log(a.toString(2))
我对您的代码做了一些小的更改。删除多余的线。我将值附加到字符串的前面而不是数组(稍后将其反转并加入数组)。
function handle(){
let selectedNumber = document.getElementById("number").value;
let k = '',a = 0, b = 1;
while (selectedNumber > 1){
if(selectedNumber%2 < 1){
k= a+k
}
else{
k=b+k
}
selectedNumber = Math.floor(selectedNumber/2);
}
k=b+k;
document.getElementById("result").innerHTML = k;
}
#result{
color: green;
font-size:25px;
}
<input id='number' placeholder='enter value'></input>
<button onClick=handle()>Convert to binary</button>
<div id='result'></div>
答案 2 :(得分:0)
比这简单得多。 .toString()
方法采用一个可选参数,该参数可用于将数字转换为不同的数字基系统,例如其二进制,八进制或十六进制值。
在输入的值前加上"windowsAuthentication": false
,会强制输入的值成为数字。
+
document.querySelector("button").addEventListener("click", function(){
let number = +document.querySelector("input").value; // Convert input into a string
console.clear();
console.log("The decimal: " + number + " converted to a binary is: " + number.toString(2));
console.log("The decimal: " + number + " converted to an octal is: " + number.toString(8));
console.log("The decimal: " + number + " converted to a hex is: " + number.toString(16));
});
答案 3 :(得分:0)
为此,实际上您可以忘记所有代码,只需使用Number.prototype.toString()。它使用您要用于将base
转换为number
的{{1}}的可选参数。
示例:
string
const convert = () =>
{
let number = document.getElementById("iNumber").value;
binNumber = Number.parseInt(number, 10).toString(2);
document.getElementById("dRes").innerHTML = binNumber;
};