Konvertieren einer Zahl in ein binäres Format in JavaScript

Nithin Krishnan 12 Oktober 2023
  1. Erstellen Sie eine Funktion zum Konvertieren der Zahl in Binär in JavaScript
  2. Konvertieren Sie eine Zahl in eine Binärzahl mit der Funktion toString(2)
Konvertieren einer Zahl in ein binäres Format in JavaScript

Die Umwandlung einer Zahl in eine Binärzahl ist ein ziemlich komplexer Vorgang. Wenn wir sitzen und die Zahlen manuell umrechnen, ist das Ergebnis fehleranfällig. Wie ändern wir eine Zahl in ein Binärformat? JavaScript hat dafür nicht viele eingebaute Funktionen. Wir werden vorstellen, wie man in JavaScript eine Zahl in eine Binärzahl umwandelt.

Erstellen Sie eine Funktion zum Konvertieren der Zahl in Binär in JavaScript

Bevor wir zum Code gehen, müssen wir den Umwandlungsprozess von einer Dezimalzahl (Basis 10) in eine Binärzahl (Basis 2) kennen. Der Einfachheit halber behandeln wir in diesem Artikel die Umrechnung von positiven ganzen Zahlen. Daher ist die Änderung von negativen ganzen Zahlen und Gleitkommazahlen nicht Gegenstand dieses Artikels.

Den Konvertierungsprozess verstehen

Bei einer gegebenen Ganzzahl (oder JavaScript-Zahl) teilen wir die Zahl weiter durch zwei und erfassen ihren Rest, bis die Zahl kleiner als 2 wird. Wenn wir beispielsweise eine Zahl 25 haben, teilen wir weiter 25 durch 2, bis wir erhalten der Quotient kleiner als 2.

Divisor Quotient Rest 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

Wir lesen die Ziffern von der höchsten zur niedrigsten. Daher ist der Binärwert für die Zahl 25 1101.

Wir verwenden die folgenden Berechnungen, um zu bestätigen, ob der Binärwert die richtige Dezimalzahl darstellt. Jedes in der Binärzahl dargestellte Bit wird mit 2 multipliziert, um den Bitpositionswert (beginnend mit 0) zu erhöhen.

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

JavaScript-Code zum Konvertieren von Zahlen in sein Binärformat

Wir bauen den folgenden Code auf der oben besprochenen Methode auf. Die Funktion convertToBinary1 tröstet das binäre Äquivalent einer als Parameter übergebenen Dezimalzahl. Beachten Sie, dass wir das Ergebnis rückwärts lesen. Daher wurde der Code unter Berücksichtigung aller oben genannten Faktoren erstellt.

Iteration verwenden

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

Ausgabe:

11001
1000

Schritte

  • Erstellen Sie eine Kopie des an die Funktion übergebenen Parameters und speichern Sie ihn in einer temporären Variablen num.
  • Erstellen Sie eine Variable zum Speichern der binären Bits. Es ist im Wesentlichen vom Typ string, um die Handhabung zu erleichtern.
  • Starten Sie die Iteration zur Generierung der Binärbits und lassen Sie sie so lange laufen, bis die Zahl nicht mehr durch 2 teilbar ist.

    In jeder Iteration teilen wir die Zahl durch 2, um den Quotienten zu erhalten. Wir berechnen den Modulous des Quotienten. Dieser Schritt erzeugt die binären Bits als Modulous einer Zahl mit 2 erzeugt die binären Bits 0 oder 1.

  • Hängen Sie das vom Modulous-Wert erzeugte Binärbit an die Binärvariable an, die die bei jeder Iteration erzeugten Binärbits enthält.
  • Sobald die Zahl nicht mehr durch 2 teilbar ist (überprüft mit Bedingung (num / 2) > 1), stoppt die Iteration.
  • Im letzten Schritt loggen wir das Ergebnis in die Konsole ein. Und daher erhalten wir das binäre Äquivalent für die Dezimalzahl, die dieser Funktion als Parameter übergeben wird.

Rekursion verwenden

Wir können die Rekursionsmethode verwenden, um das Dezimalbit in ein Binärbit umzuwandeln. Dieser Ansatz erfordert weniger Codezeilen, aber mehr Denken. Die Rekursion stoppt, wenn die Zahl nicht mehr durch 2 teilbar ist, und ruft sich selbst weiter an, bis die Breakout-Bedingung erreicht ist. Rekursionen sind elegant, verbrauchen jedoch mehr Speicher für den Funktionsaufrufstapel als für den einfachen Iterationsansatz.

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

Ausgabe:

11001
1000

Konvertieren Sie eine Zahl in eine Binärzahl mit der Funktion toString(2)

Die Funktion toString() ist bekannt, um eine Zahl in einen String umzuwandeln. Aber wir können es auch verwenden, um eine Zahl in ihr Binärformat umzuwandeln. Normalerweise wird es mit dem Number-Objekt verwendet, um die Zahl in das Binärformat umzuwandeln. Die Funktion toString(2) von JavaScript gibt bei Verwendung für ein Zahlenobjekt das binäre Äquivalent des numerischen Werts zurück, wie in den folgenden Beispielen dargestellt. Die Methode verwendet den Radixwert als Eingabe. Daher können wir es verwenden, um eine gegebene Zahl in andere Basissysteme umzuwandeln (wie die Basis von 16 (hexadezimal) und die von acht (oktal)).

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

Ausgabe:

"1000"
"11001"
"11101011"

Beachten Sie, dass der Rückgabetyp der Methode toString(2) ein String bleibt. Daher wandelt es die Zahl in ein binäres Bit im Zeichenkettenformat um.

Verwandter Artikel - JavaScript Number