Я хочу сделать простой веб-сайт, потому что хочу изучить javascript. На веб-сайте будет только один (число) ввод с именем «число». После нажатия кнопки «Отправить» веб-сайт преобразует число из десятичной системы в двоичную и покажет ответ.
Это часть javascript, которая должна преобразовать число и показать ответ в div с идентификатором = результат:
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, и этот код не работает. Я сделал аналогичную программу на питоне и основал этот код на питоне.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вот исправленный код: Совет. Всякий раз, когда вам нужно склеить два числа, чтобы сформировать строку, обязательно сделайте 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.info(k);
//document.getElementByName("number").value = k;
Самый простой способ - использовать метод toString(2).
let a =7
console.info(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>Все намного проще. Метод .toString() принимает необязательный аргумент, который можно использовать для преобразования числа в другую систему счисления, например его двоичные, восьмеричные или шестнадцатеричные значения.
Добавление входного значения с помощью + приводит к тому, что входное значение становится числом.
document.querySelector("button").addEventListener("click", function(){
let number = +document.querySelector("input").value; // Convert input into a string
console.clear();
console.info("The decimal: " + number + " converted to a binary is: " + number.toString(2));
console.info("The decimal: " + number + " converted to an octal is: " + number.toString(8));
console.info("The decimal: " + number + " converted to a hex is: " + number.toString(16));
});<input><button>Convert!</button>Для этой цели на самом деле вы можете забыть весь свой код и просто использовать Число.прототип.toString(). Он принимает необязательный аргумент base, который вы хотите использовать для преобразования number в string.
Пример:
const convert = () =>
{
let number = document.getElementById("iNumber").value;
binNumber = Number.parseInt(number, 10).toString(2);
document.getElementById("dRes").innerHTML = binNumber;
};<input id = "iNumber" type = "number">
<button id = "btnToBinary" onclick = "convert()">
Convert To Binary
</button>
<div id = "dRes"></div>