Содержание
- Преобразование одного символа ASCII в шестнадцатеричный код
- Преобразование строки ASCII в шестнадцатеричный код
- Преобразование шестнадцатеричного кода в ASCII
- Обработка ошибок и оптимизация
Преобразование одного символа ASCII в шестнадцатеричный код
JavaScript предлагает простой способ преобразования одного символа ASCII в его шестнадцатеричное представление. Метод charCodeAt()
извлекает десятичное значение ASCII символа, которое затем легко преобразуется в шестнадцатеричное с помощью toString(16)
.
function asciiToHex(asciiChar) {
if (typeof asciiChar !== 'string' || asciiChar.length !== 1) {
throw new Error("Входные данные должны быть одним символом ASCII.");
}
let hex = asciiChar.charCodeAt(0).toString(16);
return hex.padStart(2, '0');
}
console.log(asciiToHex('A')); // Вывод: 41
console.log(asciiToHex(' ')); // Вывод: 20
console.log(asciiToHex('!')); // Вывод: 21
Метод padStart(2, '0')
гарантирует, что однозначные шестнадцатеричные значения (0-F) представлены с ведущим нулём для согласованности (например, «0A» вместо «A»).
Преобразование строки ASCII в шестнадцатеричный код
Для преобразования всей строки ASCII мы перебираем каждый символ и применяем функцию asciiToHex
.
function stringAsciiToHex(asciiString) {
if (typeof asciiString !== 'string') {
throw new Error("Входные данные должны быть строкой.");
}
let hexString = "";
for (let i = 0; i < asciiString.length; i++) {
hexString += asciiToHex(asciiString[i]);
}
return hexString;
}
console.log(stringAsciiToHex("Hello")); // Вывод: 48656c6c6f
console.log(stringAsciiToHex("JavaScript")); // Вывод: 4a617661536372697074
Преобразование шестнадцатеричного кода в ASCII
Обратное преобразование — из шестнадцатеричного кода в ASCII — включает в себя разбор шестнадцатеричной строки, преобразование каждого двухзначного шестнадцатеричного сегмента в его десятичный эквивалент и затем использование String.fromCharCode()
для воссоздания символа ASCII.
function hexToAscii(hexString) {
if (typeof hexString !== 'string' || hexString.length % 2 !== 0) {
throw new Error("Входные данные должны быть корректной шестнадцатеричной строкой.");
}
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")); // Вывод: Hello
console.log(hexToAscii("4a617661536372697074")); // Вывод: JavaScript
Обработка ошибок и оптимизация
Представленные функции включают базовую обработку ошибок для проверки на неверные типы и длины входных данных. Для производственных сред может потребоваться более полная обработка ошибок для корректного управления неожиданными входными данными. Для очень больших строк следует рассмотреть использование более производительных методов, таких как типизированные массивы, для повышения эффективности. Эти примеры обеспечивают прочную основу для преобразований ASCII-шестнадцатеричный код в JavaScript.