Очевидно, потому что переменная
a никак не может принять значение, равное единице. Начните с 7, например. Сколько раз надо 7 разделить на 2, чтобы получить 1? Вот-вот.
И почему цикл крутится до единицы - её что, обрабатывать не надо? А отрицательные числа? А что если пользователь какой-нибудь мусор введёт? А почему у элементов
id такие дурацкие? - не надо там чисел. А зачем по кнопке кликать? - неудобно.
Пусть будет так:
<input id="input">
<p id="output"></p>
document.querySelector('#input').addEventListener('input', e => {
let num = parseInt(e.target.value);
let str = '';
const sign = num < 0;
num = Math.abs(num);
if (Number.isInteger(num)) do {
const d = num % 2;
str = d + str;
num = (num - d) / 2;
} while (num);
document.querySelector('#output').textContent = str
? (sign ? '-' : '') + str
: '<< МУСОР, А НЕ ЧИСЛО >>';
});