Преобразование числа в двоичный формат в JavaScript
- Создайте функцию для преобразования числа в двоичное в JavaScript
-
Преобразование числа в двоичное с помощью функции
toString(2)

Преобразование числа в двоичное - довольно сложный процесс. Если мы будем сидеть и преобразовывать числа вручную, результат будет подвержен ошибкам. Как преобразовать число в двоичный формат? В JavaScript для этого не так много встроенных функций. Мы расскажем, как преобразовать число в двоичное в JavaScript.
Создайте функцию для преобразования числа в двоичное в JavaScript
Прежде чем перейти к коду, нам нужно знать процесс преобразования десятичного числа (основание 10) в двоичное число (основание 2). Для простоты в этой статье мы рассмотрим преобразование положительных целых чисел. Следовательно, изменение отрицательных целых чисел и чисел с плавающей запятой выходит за рамки этой статьи.
Понять процесс преобразования
Учитывая целое число (или число JavaScript), мы продолжаем делить число на два и фиксировать его остаток до тех пор, пока число не станет меньше 2. Например, если у нас есть число 25, продолжайте делить 25
на 2
, пока не получим частное меньше 2.
Делитель | Частное | Остаток | Биты |
---|---|---|---|
25/2 | 12 | 1 | 0 |
12/2 | 6 | 0 | 1 |
6/2 | 3 | 0 | 2 |
3/2 | 1 | 1 | 3 |
1/2 | 0 | 1 | 4 |
Читаем цифры от старшего к младшему. Следовательно, двоичное значение числа 25 - 1101.
Мы используем следующий набор вычислений, чтобы убедиться, что двоичное значение представляет правильное десятичное число. Каждый бит, представленный в двоичном числе, умножается на 2
, чтобы получить значение позиции бита (начиная с 0).
= 2^4*(1) + 2^3*(1) + 2^2*(0) + 2^1*(0) + 2^0*(1)
= 16 + 8 + 0 + 0 + 1
= 25
Код JavaScript для преобразования числа в двоичный формат
Мы создаем следующий код на основе описанного выше метода. Функция convertToBinary1
консоляет двоичный эквивалент десятичного числа, переданного в качестве параметра. Обратите внимание, что мы читаем результат задом наперед. Следовательно, код был создан с учетом всех вышеупомянутых факторов.
Использование итерации
function convertToBinary1 (number) {
let num = number;
let binary = (num % 2).toString();
for (; num > 1; ) {
num = parseInt(num / 2);
binary = (num % 2) + (binary);
}
console.log(binary);
}
window.onload = function () {
console.log(convertToBinary1(25));
console.log(convertToBinary1(8));
}
Выход:
11001
1000
Шаги
-
Сделайте копию параметра, переданного функции, и сохраните его во временной переменной
num
. -
Создайте переменную для хранения двоичных битов. По сути, это строка типа, чтобы упростить обработку.
-
Начните итерацию для генерации двоичных битов и дайте ей продолжаться до тех пор, пока число не перестанет делиться на 2.
На каждой итерации мы делим число на
2
, чтобы получить частное. Мы вычисляем модульность частного. Этот шаг генерирует двоичные биты, поскольку модульность числа с 2 генерирует двоичные биты0
или1
. -
Добавить двоичный бит, сгенерированный модульным значением, к двоичной переменной, которая содержит двоичные биты, сгенерированные в каждой итерации.
-
Как только число больше не делится на
2
(проверено с условием (num / 2)> 1), итерация останавливается. -
На последнем этапе мы записываем результат в консоль. Таким образом, мы получаем двоичный эквивалент десятичного числа, переданного в качестве параметра этой функции.
Использование рекурсии
Мы можем использовать метод рекурсии для преобразования десятичного бита в двоичный. Этот подход требует меньше строк кода, но требует больше размышлений. Рекурсия останавливается, когда число больше не делится на 2, и продолжает вызывать себя до тех пор, пока не достигнет условия прорыва. Рекурсии элегантны, но потребляют больше памяти для стека вызовов функций, чем для простого итерационного подхода.
function convertToBinary (number, bin) {
if (number > 0) {
return convertToBinary( parseInt(number / 2) ) + (number % 2)
};
return '';
}
window.onload = function () {
console.log(convertToBinary(25));
console.log(convertToBinary(8));
}
Выход:
11001
1000
Преобразование числа в двоичное с помощью функции toString(2)
Функция toString()
хорошо знакома для преобразования числа в строку. Но мы также можем использовать его для преобразования числа в его двоичный формат. Обычно он используется с объектом Number
для преобразования числа в двоичный формат. Функция javascript toString(2)
при использовании с числовым объектом возвращает двоичный эквивалент числового значения, как показано в примерах ниже. В качестве входных данных метод принимает значение системы счисления. Следовательно, мы можем использовать его для преобразования данного числа в другие базовые системы (например, основание 16 (шестнадцатеричное) и основание восьми (восьмеричное)).
(8).toString(2)
(25).toString(2)
(235).toString(2)
Выход:
"1000"
"11001"
"11101011"
Обратите внимание, что тип возврата метода toString(2)
остается строкой. Следовательно, он преобразует число в двоичный бит в строковом формате.