Converter um número em formato binário em JavaScript

Nithin Krishnan 12 outubro 2023
  1. Crie uma função para converter o número em binário em JavaScript
  2. Converter um número em binário com a função toString(2)
Converter um número em formato binário em JavaScript

Converter um número em binário é um processo bastante complexo. Se formos sentar e converter os números manualmente, o resultado estará sujeito a erros. Como alteramos um número para um formato binário? JavaScript não possui muitas funções integradas para fazer isso. Apresentaremos como converter um número em binário em JavaScript.

Crie uma função para converter o número em binário em JavaScript

Antes de irmos para o código, precisamos saber o processo de conversão de um número decimal (base 10) para um número binário (base 2). Para simplificar, abordaremos a conversão de números inteiros positivos neste artigo. Conseqüentemente, a mudança de números inteiros negativos e números de ponto flutuante está fora do escopo deste artigo.

Entenda o processo de conversão

Dado um número inteiro (ou número JavaScript), continuamos dividindo o número por dois e capturando seu restante até que o número fique menor que 2. Por exemplo, se tivermos um número 25, continue dividindo 25 por 2 até obtermos o quociente menor que 2.

Divisor Quociente Restante Bits
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

Lemos os dígitos do maior para o menor. Portanto, o valor binário para o número 25 é 1101.

Usamos o seguinte conjunto de cálculos para confirmar se o valor binário representa o número decimal correto. Cada bit representado no número binário é multiplicado por 2 para alimentar o valor da posição do bit (começando em 0).

= 2^4*(1) + 2^3*(1) + 2^2*(0) + 2^1*(0) + 2^0*(1)
= 16 + 8 + 0 + 0 + 1
= 25

Código JavaScript para converter o número em seu formato binário

Construímos o código a seguir no método discutido acima. A função convertToBinary1 consola o equivalente binário de um número decimal passado como parâmetro. Observe que lemos o resultado ao contrário. Portanto, o código foi criado considerando todos os fatores mencionados anteriormente.

Usando Iteração

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));
}

Resultado:

11001
1000

Passos

  • Faça uma cópia do parâmetro passado para a função e armazene-o em uma variável temporária num.
  • Crie uma variável para armazenar os bits binários. É essencialmente do tipo string para facilitar o manuseio.
  • Inicie a iteração para gerar os bits binários e deixe-a continuar até que o número não seja mais divisível por 2.

    Em cada iteração, dividimos o número por 2 para obter o quociente. Calculamos o modulous do quociente. Esta etapa gera os bits binários como modulous de um número com 2 gera os bits binários 0 ou 1.

  • Acrescenta o bit binário gerado pelo valor modulous à variável binária que contém os bits binários gerados em cada iteração.
  • Assim que o número não for mais divisível por 2 (verificado com a condição (num / 2)> 1), a iteração para.
  • Na etapa final, registramos o resultado no console. E, portanto, obtemos o equivalente binário para o número decimal passado como um parâmetro para esta função.

Usando recursão

Podemos usar o método de recursão para converter o bit decimal em binário. Essa abordagem requer menos linhas de código, mas mais raciocínio. A recursão para quando o número não é mais divisível por 2 e continua chamando a si mesmo até atingir a condição de quebra. As recursões são elegantes, mas consomem mais memória para a pilha de chamadas de função do que para a abordagem de iteração simples.

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));
}

Resultado:

11001
1000

Converter um número em binário com a função toString(2)

A função toString() é bastante familiar para converter um número em uma string. Mas também podemos usá-lo para converter um número em seu formato binário. Normalmente, ele é usado com o objeto Number para converter o número para o formato binário. A função toString(2) do javascript, quando usada em um objeto de número, retorna o equivalente binário do valor numérico, conforme ilustrado nos exemplos abaixo. O método usa o valor da raiz como entrada. Portanto, podemos usá-lo para converter um determinado número em outros sistemas de base (como a base de 16 (hexadecimal) e a de oito (Octal)).

(8).toString(2)(25).toString(2)(235).toString(2)

Resultado:

"1000"
"11001"
"11101011"

Observe que o tipo de retorno do método toString(2) permanece uma string. Conseqüentemente, ele converte o número em um bit binário em um formato de string.

Artigo relacionado - JavaScript Number