JavaScript Tutorials

Conversion ASCII et Hexadécimal JavaScript

Spread the love

Table des matières

Conversion d’un caractère ASCII unique en hexadécimal

JavaScript offre un moyen simple de convertir un seul caractère ASCII en sa représentation hexadécimale. La méthode charCodeAt() récupère la valeur ASCII décimale du caractère, qui est ensuite facilement convertie en hexadécimal à l’aide de toString(16).


function asciiToHex(asciiChar) {
  if (typeof asciiChar !== 'string' || asciiChar.length !== 1) {
    throw new Error("L'entrée doit être un seul caractère ASCII.");
  }
  let hex = asciiChar.charCodeAt(0).toString(16);
  return hex.padStart(2, '0'); 
}

console.log(asciiToHex('A')); // Sortie: 41
console.log(asciiToHex(' ')); // Sortie: 20
console.log(asciiToHex('!')); // Sortie: 21

La méthode padStart(2, '0') garantit que les valeurs hexadécimales à un seul chiffre (0-F) sont représentées avec un zéro initial pour plus de cohérence (par exemple, « 0A » au lieu de « A »).

Conversion d’une chaîne ASCII en hexadécimal

Pour convertir une chaîne ASCII entière, nous itérons sur chaque caractère et appliquons la fonction asciiToHex.


function stringAsciiToHex(asciiString) {
  if (typeof asciiString !== 'string') {
    throw new Error("L'entrée doit être une chaîne de caractères.");
  }
  let hexString = "";
  for (let i = 0; i < asciiString.length; i++) {
    hexString += asciiToHex(asciiString[i]);
  }
  return hexString;
}

console.log(stringAsciiToHex("Hello")); // Sortie: 48656c6c6f
console.log(stringAsciiToHex("JavaScript")); // Sortie: 4a617661536372697074

Conversion d’hexadécimal en ASCII

La conversion inverse, de l’hexadécimal à l’ASCII, consiste à analyser la chaîne hexadécimale, à convertir chaque segment hexadécimal à deux chiffres en son équivalent décimal, puis à utiliser String.fromCharCode() pour reconstruire le caractère ASCII.


function hexToAscii(hexString) {
  if (typeof hexString !== 'string' || hexString.length % 2 !== 0) {
    throw new Error("L'entrée doit être une chaîne hexadécimale valide.");
  }
  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")); // Sortie: Hello
console.log(hexToAscii("4a617661536372697074")); // Sortie: JavaScript

Gestion des erreurs et optimisation

Les fonctions fournies incluent une gestion basique des erreurs pour vérifier les types et les longueurs d’entrée invalides. Pour les environnements de production, une gestion des erreurs plus complète pourrait être nécessaire pour gérer correctement les entrées inattendues. Pour les chaînes extrêmement longues, envisagez d’utiliser des méthodes plus performantes comme les tableaux typés pour une meilleure efficacité. Ces exemples fournissent une base solide pour les conversions ASCII-hexadécimales en JavaScript.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *