Преобразование числа в двоичный формат в JavaScript

Nithin Krishnan 30 Январь 2023 3 Июль 2021
  1. Создайте функцию для преобразования числа в двоичное в JavaScript
  2. Преобразование числа в двоичное с помощью функции toString(2)
Преобразование числа в двоичный формат в JavaScript

Преобразование числа в двоичное - довольно сложный процесс. Если мы будем сидеть и преобразовывать числа вручную, результат будет подвержен ошибкам. Как преобразовать число в двоичный формат? В 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) остается строкой. Следовательно, он преобразует число в двоичный бит в строковом формате.

Сопутствующая статья - JavaScript Number