От десятичной к двоичной системе

Я хочу сделать простой веб-сайт, потому что хочу изучить 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, и этот код не работает. Я сделал аналогичную программу на питоне и основал этот код на питоне.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
94
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Вот исправленный код: Совет. Всякий раз, когда вам нужно склеить два числа, чтобы сформировать строку, обязательно сделайте 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>

Другие вопросы по теме