Converti un numero in formato binario in JavaScript

Nithin Krishnan 12 ottobre 2023
  1. Crea una funzione per convertire il numero in binario in JavaScript
  2. Converti un numero in binario con la funzione toString(2)
Converti un numero in formato binario in JavaScript

La conversione di un numero in binario è un processo piuttosto complesso. Se dobbiamo sederci e convertire i numeri manualmente, il risultato sarà soggetto a errori. Come si cambia un numero in un formato binario? JavaScript non ha molte funzioni integrate per farlo. Introdurremo come convertire un numero in binario in JavaScript.

Crea una funzione per convertire il numero in binario in JavaScript

Prima di passare al codice, dobbiamo conoscere il processo di conversione da un numero decimale (base 10) a un numero binario (base 2). Per semplicità, tratteremo la conversione di numeri interi positivi in ​​questo articolo. Pertanto, la modifica degli interi negativi e dei numeri a virgola mobile non rientra nell’ambito di questo articolo.

Comprendi il processo di conversione

Dato un numero intero (o numero JavaScript), continuiamo a dividere il numero per due e a catturare il resto finché il numero diventa minore di 2. Ad esempio, se abbiamo un numero 25, continuiamo a dividere 25 per 2 finché non otteniamo il quoziente minore di 2.

Divisore Quoziente Resto bit
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

Leggiamo le cifre dalla più alta alla più bassa. Quindi il valore binario per il numero 25 è 1101.

Usiamo la seguente serie di calcoli per confermare se il valore binario rappresenta il numero decimale corretto. Ogni bit rappresentato nel numero binario viene moltiplicato per 2 per alimentare il valore della posizione del bit (a partire da 0).

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

Codice JavaScript per convertire il numero nel suo formato binario

Costruiamo il seguente codice sul metodo discusso sopra. La funzione convertToBinary1 consola l’equivalente binario di un numero decimale passato come parametro. Nota che leggiamo il risultato al contrario. Quindi il codice è stato creato tenendo conto di tutti i suddetti fattori.

Utilizzo dell’iterazione

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

Produzione:

11001
1000

Passi

  • Effettua una copia del parametro passato alla funzione e lo memorizza in una variabile temporanea num.
  • Crea una variabile per memorizzare i bit binari. Essenzialmente è di tipo string per facilitarne la gestione.
  • Avvia l’iterazione per la generazione dei bit binari e continua finché il numero non è più divisibile per 2.

    Ad ogni iterazione, dividiamo il numero per 2 per ottenere il quoziente. Calcoliamo il modulo del quoziente. Questo passo genera i bit binari come modulo di un numero con 2 genera i bit binari 0 o 1.

  • Aggiunge il bit binario generato dal valore modulo alla variabile binaria che contiene i bit binari generati ad ogni iterazione.
  • Quando il numero non è più divisibile per 2 (controllato con condizione (num / 2) > 1), l’iterazione si interrompe.
  • Nel passaggio finale, registriamo il risultato nella console. E quindi otteniamo l’equivalente binario per il numero decimale passato come parametro a questa funzione.

Utilizzo della ricorsione

Possiamo usare il metodo di ricorsione per convertire il bit decimale in binario. Questo approccio richiede meno righe di codice ma più pensiero. La ricorsione si interrompe quando il numero non è più divisibile per 2 e continua a chiamare se stessa fino a raggiungere la condizione di breakout. Le ricorsioni sono eleganti ma consumano più memoria per lo stack di chiamate di funzione rispetto al semplice approccio di iterazione.

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

Produzione:

11001
1000

Converti un numero in binario con la funzione toString(2)

La funzione toString() è abbastanza familiare per convertire un numero in una stringa. Ma possiamo usarlo anche per convertire un numero nel suo formato binario. Solitamente viene utilizzato con l’oggetto Number per convertire il numero in formato binario. La funzione toString(2) di javascript, quando utilizzata su un oggetto numerico, restituisce l’equivalente binario del valore numerico, come illustrato negli esempi seguenti. Il metodo accetta il valore radix come input. Quindi, possiamo usarlo per convertire un dato numero in altri sistemi di base (come la base di 16 (esadecimale) e quella di otto (ottale)).

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

Produzione:

"1000"
"11001"
"11101011"

Nota che il tipo restituito dal metodo toString(2) rimane una stringa. Quindi, converte il numero in un bit binario in un formato stringa.

Articolo correlato - JavaScript Number