JS implementiert den Beispielcode der Dezimalkonvertierung in Hexadezimal

JS implementiert den Beispielcode der Dezimalkonvertierung in Hexadezimal

Vorwort

Beim Schreiben von Code stoßen wir gelegentlich auf das Problem der Basiskonvertierung. Übliche Konvertierungen sind binär, oktal, dezimal und hexadezimal, aber hexadezimal ist selten anzutreffen. Hier verwenden wir JS, um einfach zu versuchen, hexadezimal zu implementieren.

denken

Die Struktur von Hexadezimalzahlen

Bevor wir beginnen, müssen wir zunächst die Zusammensetzung von Hexadezimalzahlen verstehen, damit wir ein klares Verständnis von Hexadezimalzahlen und der anschließenden Konvertierung von Zahlen haben. Wir alle wissen, dass Hexadezimalzahlen aus den Zeichen 0 bis 9 und a bis a bestehen. Wie ist es also mit Hexadezimalzahlen? , schieben Sie af um 20 Stellen zurück, und es ist offensichtlich, dass sein Buchstabenteil aus 26 englischen Buchstaben az besteht, also besteht die Hexadezimalzahl aus 0-9, az

Numerische Vorbereitung

Nachdem Sie die Zusammensetzung verstanden haben, überlegen Sie, wie eine Dezimalzahl in eine Hexadezimalzahl umgewandelt werden kann. Wir müssen zunächst ein „Warehouse“-Array mit 36 ​​Werten vorbereiten. Dieses Array wird verwendet, um alle Werte von Hexadezimalzahlen zu speichern. Wenn eine Dezimalzahl konvertiert werden muss, wird der Wert der Hexadezimalzahl entsprechend dem Wert aus dem Warehouse entnommen. Im Warehouse stellt 0-9 0-9 der Hexadezimalzahl dar und 10-35 stellt az der Hexadezimalzahl dar. Der Code lautet wie folgt

Funktion getNums36() {
  var nums36 = [];
  für(var i = 0; i < 36 ; i++) {
    if(i >= 0 && i <= 9) { // Speichere die Werte 0-9 nums36.push(i) 
    } else { // Speichere den Wert von az nums36.push(String.fromCharCode(i + 87)); // ASCII-Code-Konvertierung }
  }
  console.log(nums36,'--------'); //Überprüfen Sie den Wert des Warehouse return nums36; 
}

erreichen

Nachdem das Lager erstellt ist, beginnen wir mit dem Zerlegungsprozess der Binärkonvertierung.

  • Zuerst wird die übergebene Dezimalzahl geprüft und dann die Gleitkommazahl beurteilt. Da hier nicht auf die Basiskonvertierung von Gleitkommazahlen eingegangen wird, wird diese direkt zurückgegeben. Zweitens werden negative Zahlen erkannt und verarbeitet. Wenn n eine negative Zahl ist, wird die Methode Math.abs() aufgerufen, um n in eine positive Zahl umzuwandeln.
  • Nach Abschluss der Erkennung beginnt die Konvertierung

Richten Sie eine While-Schleife ein. Führen Sie zunächst Modulo 36 für den Wert von n aus, um res zu erhalten.

var res = n % 36;

Hier müssen wir den niedrigsten Bitwert der Dezimalzahl in eine Hexadezimalzahl umwandeln, res in das Lager werfen, den entsprechenden Hexadezimalwert abrufen und ihn mit unshift im ersten Bit von arr speichern.

arr.unshift(nums36[res]);

Nachdem wir das niedrigste Bit verarbeitet haben, müssen wir die Zahl übertragen und den Wert des höheren Bits verarbeiten.

n = parseInt(n/36);

An diesem Punkt ist ein Zyklus abgeschlossen

Wir verwenden while, um den Modul von res kontinuierlich auf n zu nehmen und kontinuierlich zu übertragen. Schließlich können wir die Dezimalzahl in eine Hexadezimalzahl umwandeln.

Beachten Sie, dass Sie zu diesem Zeitpunkt daran denken müssen, das negative Zahlenurteil des zuvor festgelegten Neg an erster Stelle hinzuzufügen

arr.unshift(neg)

Geben Sie abschließend die Hexadezimalzahl zurück

arr.join("");

Code

// 36-Bit-Ausdruck 0-9 az bereitstellen
Funktion getNums36() {
  var nums36 = [];
  für(var i = 0; i < 36 ; i++) {
    wenn(i >= 0 und i <= 9) {
      nums36.push(i)
    } anders {
      nums36.push(String.fromCharCode(i + 87));
    }
  }
  gebe Nums36 zurück;
}
Funktion scale36(n) {
  // Einzelne Funktion // Hexadezimalzahl: 0-9 af Hexadezimalzahl: 0-9 az   
  const arr = [];
  var nums36 = getNums36();
  // 36 10
  if(!Number.isInteger(n)){//Beurteilung von Gleitkommazahlen, wird derzeit von Mäusen nicht unterstützt console.warn('Dezimalkonvertierung wird nicht unterstützt');
    Rückkehr n;
  } 
  var neg = '';
  if(n < 0){//Verarbeitung negativer Zahlen neg = '-';
      n = Math.abs(n)
  }
  während(n) {
    var res = n % 36;
    Konsole.log(res,'++++++++');
    arr.unshift(nums36[res]);
    // Übertrag n = parseInt(n/36);
    Konsole.log(n,'---------');
  }
  arr.unshift(neg)
  arr.join("");

}

console.log(scale36(20)); // 10

Erweiterungen

Implementierung von 7-Basiszahlen

Diese Vorlage ist auch für die Konvertierung von Dezimalzahlen in andere Basen anwendbar. Wir müssen nur den Wert des Lagers ändern. Hier nehmen wir ein 7-Basen-Problem von LeetCode als Beispiel

504. Basis 7: Konvertieren Sie eine gegebene Ganzzahl in die Basis 7 und geben Sie sie als Zeichenfolge aus.

Beispiel 1:
Eingabe: 100 Ausgabe: "202"

Bereiten Sie zunächst das 7-Basis-Zahlenlager vor

Funktion getNums7() {
  var nums7 = [];
  für(var i = 0; i < 7 ; i++) {
    
      nums7.push(i)
   
  }
  gebe Nums7 zurück;
}

Ändern Sie dann den Restwert und den Übertrag, um die Wiederverwendung der Vorlage abzuschließen.

var res = n % 7;
n = parseInt(n/7);

Code-Funktion getNums7() {
  var nums7 = [];
  für(var i = 0; i < 7 ; i++) {
    
      nums7.push(i)
   
  }
  gebe Nums7 zurück;
}
var convertToBase7 = Funktion(Zahl) {
  // Einzelne Funktion const arr = [];
  var nums7 = getNums7();
  var neg = '';
  if(num < 0){//Verarbeitung negativer Zahlen neg = '-';
      Zahl = Math.abs(Zahl)
  }
  wenn(Zahl == 0) {
      gibt Num + "" zurück;
  }
  
  während(Zahl) {
    var res = num % 7; // die höherwertigen Daten abfangen arr.unshift(nums7[res]);  
    // Übertrag num = parseInt(num/7); 
  }
  arr.unshift(neg);
  arr.join("");

}

Zusammenfassung

Anhand dieses Beispiels können wir erkennen, dass wir mit ein paar kleinen Änderungen das Dezimalsystem problemlos in andere Systeme umwandeln können. Der Schlüssel liegt im Modulo von res und der Konstruktion des Warehouse-Werts. Durch kontinuierliches Übertragen und While-Schleifen erhalten wir schließlich die gewünschte Zahl.

Dies ist das Ende dieses Artikels über die Implementierung der Konvertierung von Dezimalzahlen in Hexadezimalzahlen in JS. Weitere relevante Inhalte zur Implementierung der Konvertierung von Dezimalzahlen in Hexadezimalzahlen in JS finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • PHP-Implementierung eines Beispiels für die Hexadezimal- und Dezimal-Konvertierungsfunktion

<<:  MySQL 5.0.96 für Windows x86 32-Bit Green - vereinfachte Version - Installations-Tutorial

>>:  Centos7.4-Serverinstallation von Apache und Lösungen für während des Installationsvorgangs aufgetretene Probleme

Artikel empfehlen

JavaScript Voranalyse, Objektdetails

Inhaltsverzeichnis 1. Voranalyse 1. Vorabanalyse ...

Lösung für Linux CentOS 6.5 ifconfig kann IP nicht abfragen

Kürzlich sagten einige Freunde, dass sie nach der...

Reacts Methode zur Realisierung einer sekundären Verknüpfung

In diesem Artikel wird der spezifische Code von R...

Vue implementiert ein verschiebbares Baumstrukturdiagramm

Inhaltsverzeichnis Rekursive Vue-Komponente Drag-...

So konvertieren Sie Chinesisch in HTML in UTF-8

In HTML kann die chinesische Phrase „學好好學“ als „學...

VM VirtualBox virtuelle Maschine mounten freigegebenen Ordner

Eine Umgebung Installieren Sie VMware Tools auf C...

So sammeln Sie Nginx-Protokolle mit Filebeat

Mithilfe von Nginx-Protokollen lassen sich Benutz...

Zusammenfassung der Linux-Befehle zur Dateiverzeichnisverwaltung

Befehl „touch“ Es hat zwei Funktionen: Eine beste...