Inhaltsverzeichnis
- Umwandlung eines einzelnen ASCII-Zeichens in Hexadezimal
- Umwandlung einer ASCII-Zeichenkette in Hexadezimal
- Umwandlung von Hexadezimal in ASCII
- Fehlerbehandlung und Optimierung
Umwandlung eines einzelnen ASCII-Zeichens in Hexadezimal
JavaScript bietet eine einfache Möglichkeit, ein einzelnes ASCII-Zeichen in seine hexadezimale Darstellung umzuwandeln. Die Methode charCodeAt()
ruft den dezimalen ASCII-Wert des Zeichens ab, der dann einfach mit toString(16)
in Hexadezimal umgewandelt wird.
function asciiToHex(asciiChar) {
if (typeof asciiChar !== 'string' || asciiChar.length !== 1) {
throw new Error("Eingabe muss ein einzelnes ASCII-Zeichen sein.");
}
let hex = asciiChar.charCodeAt(0).toString(16);
return hex.padStart(2, '0');
}
console.log(asciiToHex('A')); // Ausgabe: 41
console.log(asciiToHex(' ')); // Ausgabe: 20
console.log(asciiToHex('!')); // Ausgabe: 21
Die Methode padStart(2, '0')
stellt sicher, dass einstellige hexadezimale Werte (0-F) zur Konsistenz mit einer führenden Null dargestellt werden (z. B. „0A“ statt „A“).
Umwandlung einer ASCII-Zeichenkette in Hexadezimal
Um eine ganze ASCII-Zeichenkette umzuwandeln, iterieren wir durch jedes Zeichen und wenden die Funktion asciiToHex
an.
function stringAsciiToHex(asciiString) {
if (typeof asciiString !== 'string') {
throw new Error("Eingabe muss eine Zeichenkette sein.");
}
let hexString = "";
for (let i = 0; i < asciiString.length; i++) {
hexString += asciiToHex(asciiString[i]);
}
return hexString;
}
console.log(stringAsciiToHex("Hello")); // Ausgabe: 48656c6c6f
console.log(stringAsciiToHex("JavaScript")); // Ausgabe: 4a617661536372697074
Umwandlung von Hexadezimal in ASCII
Die umgekehrte Umwandlung – von Hexadezimal zu ASCII – beinhaltet das Parsen der hexadezimalen Zeichenkette, die Umwandlung jedes zweistelligen hexadezimalen Segments in seinen dezimalen Äquivalent und die Verwendung von String.fromCharCode()
zum Rekonstruieren des ASCII-Zeichens.
function hexToAscii(hexString) {
if (typeof hexString !== 'string' || hexString.length % 2 !== 0) {
throw new Error("Eingabe muss eine gültige hexadezimale Zeichenkette sein.");
}
let asciiString = "";
for (let i = 0; i < hexString.length; i += 2) {
const hexPair = hexString.substring(i, i + 2);
const decimalValue = parseInt(hexPair, 16);
asciiString += String.fromCharCode(decimalValue);
}
return asciiString;
}
console.log(hexToAscii("48656c6c6f")); // Ausgabe: Hello
console.log(hexToAscii("4a617661536372697074")); // Ausgabe: JavaScript
Fehlerbehandlung und Optimierung
Die bereitgestellten Funktionen beinhalten eine grundlegende Fehlerbehandlung, um ungültige Eingabetypen und -längen zu überprüfen. Für Produktionsumgebungen ist möglicherweise eine umfassendere Fehlerbehandlung erforderlich, um unerwartete Eingaben problemlos zu verwalten. Für extrem lange Zeichenketten sollten leistungsfähigere Methoden wie Typisierte Arrays zur Verbesserung der Effizienz verwendet werden. Diese Beispiele bieten eine solide Grundlage für ASCII-Hexadezimal-Umwandlungen in JavaScript.