从十进制到二进制系统

时间:2019-02-17 19:44:39

标签: javascript binary

我想做一个简单的网站,因为我想学习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中的代码。

4 个答案:

答案 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;
};