Konvertieren Sie ASCII in Hexadezimal in JavaScript
- Konvertieren Sie ein ASCII-Zeichen in ein Hexadezimalzeichen in JavaScript
- Konvertieren eines ASCII-Strings in ein hexadezimales Äquivalent in JavaScript
- Konvertieren Sie Hexadezimal zurück in ASCII
Die Hauptabsicht bei der Entwicklung des American Standard Code for Information Interchange (ASCII) war der Datenaustausch zwischen Geräten. ASCII ist eine Codetabelle, die von Menschen lesbare Zeichen enthält und aus jedem Zeichen besteht, das bestimmten Zahlen zugeordnet ist (den sogenannten ASCII-Codes). Wie die von Computern verwendeten binären Basiszahlensysteme verwenden wir hexadezimale Zahlensysteme, während wir Daten über einen Kanal für eine fehlerfreie Kommunikation übertragen. ASCII ist ein von Menschen lesbares Format, das intern von Computern unterschiedlich verwendet wird. Sehen wir uns an, wie wir mit JavaScript einen ASCII-Wert in einen Hex-Wert umwandeln können.
Konvertieren Sie ein ASCII-Zeichen in ein Hexadezimalzeichen in JavaScript
Die Konvertierung ist einfach und erfordert nicht viele Schritte im Code. Schauen wir uns den Code zum Konvertieren eines ASCII-Zeichens in ein Hexadezimalzeichen an.
window.onload =
function() {
convertASCIItoHex('A');
convertASCIItoHex('n');
convertASCIItoHex('!');
}
function convertASCIItoHex(asciiVal) {
let asciiCode = asciiVal.charCodeAt(0);
let hexValue = asciiCode.toString(16);
console.log('0x' + hexValue);
}
Ausgabe:
0x41
0x6e
0x21
In diesem Abschnitt beschäftigen wir uns mit der Umwandlung eines ASCII-Zeichens in das hexadezimale Äquivalent dazu. Wir haben den Konvertierungsprozess wie folgt erklärt.
-
In der Funktion
window.onload()
von JavaScript rufen wir die FunktionconvertASCIItoHex()
auf, um den ASCII-Wert in Hexadezimal in JavaScript zu übersetzen. Die Funktionwindow.onload()
wird beim Laden der Seite aufgerufen, damit die Funktion ausgeführt wird, sobald die Seite geladen wird. -
In der Funktion
convertASCIItoHex()
übergeben wir den zu konvertierenden ASCII-Wert.asciiVal.charCodeAt(0)
liefert als Parameter den ASCII-Code des in der FunktionconvertASCIItoHex()
übergebenen Eingabewertes. Die ASCII-Tabelle enthält eine Zuordnung zum menschenlesbaren Buchstabenformat und einen damit verbundenen Code. Es sieht wie folgt aus.DEZIMAL HEXCODE Symbol Beschreibung 65 41 EIN Großbuchstaben A 66 42 B Großbuchstaben B 67 43 C Großbuchstaben C 68 44 D Großbuchstaben D 69 45 E Großbuchstaben E 70 46 F Großbuchstaben F 71 47 G Großbuchstaben G 72 48 H Großbuchstaben H 73 49 ich Großbuchstaben I 74 4A J Großbuchstaben J Die Dezimalspalte repräsentiert den Code für den ASCII-Wert. Der ASCII-Code für A
ist beispielsweise 65. Die FunktionasciiVal.charCodeAt(0)
gibt den ASCII-Wert vonasciiVal
zurück, der den WertA
enthält. Daher gibt es 65 zurück. Den ASCII-Code speichern wir in der VariablenasciiCode
. -
Sobald wir den dem Parameterwert entsprechenden ASCII-Code erhalten haben, besteht unser nächster Schritt darin, ihn in hexadezimal umzuwandeln. Im Snippet
asciiCode.toString(16)
liefert die Funktion.toString(16)
den hexadezimalen Wert als String zurück. Den hexadezimalen Stringwert speichern wir in der VariablenhexValue
. -
Im letzten Schritt trösten wir das hexadezimale Äquivalent des übergebenen Attributs mit der JavaScript-Funktion
console.log()
.
Hinweis
-
Es mag seltsam erscheinen, das Schlüsselwort
0x
an den konvertierten Hexadezimalwert anzuhängen. Es ist ein üblicher Ansatz in JavaScript, die Zahl als hexadezimalen Wert zu identifizieren (weitere Informationen finden Sie in MSDN Docs). Für Ihre geschäftlichen Zwecke können wir dies vermeiden und der hexadezimalen Wertausgabe der Funktion.toString(16)
folgen. -
Die Funktion
toString(16)
ist eine Mehrzweckfunktion in JavaScript. Wir können es verwenden, um in verschiedene Zahlenbasissysteme umzuwandeln. Wir müssen die Dezimalbasis oder das Radix als Parameter an die Funktion übergeben. Wenn wir uns auf ein binäres Äquivalent des ASCII-Codes freuen, dann gibt die FunktiontoString(2)
das binäre Äquivalent des Dezimalwerts zurück. Die Funktion wandelt das Objekt in einen String um, bevor der Binärwert zurückgegeben wird. Daher ist der Rückgabetyp von.toString()
string. -
Der obige Code berücksichtigt nur eine Zeichenkonvertierung. Wenn Sie also als Eingabe einen String wie
convertASCIItoHex("HELLO")
angeben, gibt die Funktion den hexadezimalen Wert des ersten Buchstabens “H” zurück. Dies geschieht durch die FunktioncharCode(0)
inasciiVal.charCodeAt(0)
.
Konvertieren eines ASCII-Strings in ein hexadezimales Äquivalent in JavaScript
Die häufigsten Anforderungen, die wir in unserem Leben stellen, sind die Umwandlung einer Zeichenkette als Ganzes in den hexadezimalen Äquivalentwert und nicht in ein Zeichen. Das folgende Programm nimmt eine Zeichenkette als Eingabe und gibt eine Zeichenkette mit hexadezimaler Entsprechung für jedes Zeichen als Ausgabe zurück. Jeder Hex-Wert wird zur besseren Lesbarkeit und zum besseren Verständnis durch ' '
getrennt.
window.onload =
function() {
convertASCIItoHex('Hello!');
convertASCIItoHex('Good Morning World!!');
}
function convertASCIItoHex(asciiString) {
let hex = '';
let tempASCII, tempHex;
asciiString.split('').map(i => {
tempASCII = i.charCodeAt(0)
tempHex = tempASCII.toString(16);
hex = hex + tempHex + ' ';
});
hex = hex.trim();
console.log(hex);
}
Ausgabe:
48 65 6c 6c 6f 21
47 6f 6f 64 20 4d 6f 72 6e 69 6e 67 20 57 6f 72 6c 64 21 21
Hier liefert convertASCIItoHex()
einen hexadezimalen String-Wert, der der bereitgestellten String-Eingabe entspricht. Es wird ein Wert vom Typ String
zurückgegeben. Die Zeichenkette der Hex-Codes ist aus Gründen der Lesbarkeit und Klarheit durch Leerzeichen getrennt. Schauen wir uns die Schritte an, die wir befolgt haben.
-
Wie im vorherigen Abschnitt besprochen, rufen wir die Funktion
window.onload()
von JavaScript auf und rufen dann die FunktionconvertASCIItoHex("Hello!")
auf, indem wir einen String"Hello!"
übergeben. als Parameter dazu. -
In der Funktion
convertASCIItoHex()
teilen wir den Eingabestring in Zeichen auf, um sie leichter verarbeiten zu können. Daher wird in dieser Phase der String"Hello!"
in["H", "e", "l", "l", "o", "!"]
, ein String-Array, umgewandelt. -
Als nächstes wenden wir mit dem JavaScript-Operator
.map()
auf jedes Element des Arrays “die Umwandlung von ASCII in Hex” an. Es durchläuft jedes Element und führt eine Funktion auf jedem von ihnen aus. Wir übergeben die Funktion als Inline-Funktion oder Pfeilfunktion. -
In der Funktion verwenden wir
charCodeAt(0)
, um den ASCII-Code des aktuellen Array-Elements zu erhalten. Dann wenden wir auf das ASCII-Code-Objekt dentoString(16)
an, um den ASCII-Wert in eine hexadezimale Basis umzuwandeln. Dann schieben wir den hexadezimalen Wert in das Arrayhex
, das Ausgabearray. Beachten Sie, dass wir aus Gründen der Lesbarkeit ein Leerzeichen zwischen den aufeinanderfolgenden Konvertierungen verwenden. Sie können auch,
oder;
verwenden. Trennzeichen, wie es von den Geschäftsanforderungen verlangt wird. -
Mit
hex = hex + tempHex + ' '
fügen wir nach jeder Elementumwandlung ein Leerzeichen an. Daher wird das Endergebnis ein abschließendes Leerzeichen haben. Um das zu entfernen, verwenden wir die Funktion.trim()
von JavaScript. -
Abschließend wird das konvertierte String-Array mit dem
console.log(hex)
in die Konsole protokolliert.
Konvertieren Sie Hexadezimal zurück in ASCII
Jetzt, da wir die hexadezimalen Werte bereit haben, stellt sich die Frage, wie wir bestätigen können, dass die Ausgabe wie erwartet ist. Den Kern der Funktionalität erreichen wir mit der Funktion fromCharCode(ASCIICode)
von JavaScript, die das ASCII-Zeichen zurückliefert, das dem im Parameter übergebenen ASCII-Code entspricht. Hier können wir den folgenden Code verwenden.
window.onload = function() {
convertASCIItoHex('48 65 6c 6c 6f 21');
convertASCIItoHex(
'47 6f 6f 64 20 4d 6f 72 6e 69 6e 67 20 57 6f 72 6c 64 21 21');
} function convertHexToASCII(hexString) {
let stringOut = '';
hexString.split(' ').map((i) => {
tempAsciiCode = parseInt(i, 16);
stringOut = stringOut + String.fromCharCode(tempAsciiCode);
});
console.log(stringOut);
}
Ausgabe:
Hello!
Good Morning World!!
Ein paar Methoden machen hier die Magie. parseInt(i, 16)
wandelt eine Eingabe der Basis 16
in eine Dezimalbasis um. Daher erhalten wir mit dieser Methode den ASCII-Code für den Hex-Wert. Und String.fromCharCode(tempAsciiCode)
nimmt den dieser Funktion als Parameter übergebenen ASCII-Code und gibt das dem Code entsprechende ASCII-Zeichen zurück.
Bemerkungen
- Die am häufigsten verwendete von Menschen lesbare Form von ASCII umfasst Alphabete, Zahlen und Sonderzeichen. Mit den JavaScript-Codes wollen wir diese Zeichensätze abdecken. Bestimmte ASCII-Codes in JavaScript können wir nicht testen, wie das ACK: Acknowledge-Zeichen, ETX: End of Text-Zeichen usw.
- JavaScript-String-Variable kann eine Länge von maximal 253-1 Zeichen gemäß ES8-Standards enthalten. Und das entspricht ungefähr 512 MB Daten in Chrome und rund einem Gigabyte Daten in Firefox. Daher können wir mit unserem Code längere Zeichenkettenwerte konvertieren.