Converti ASCII in esadecimale in JavaScript
- Converti un carattere ASCII in esadecimale in JavaScript
- Conversione di una stringa di ASCII in equivalente esadecimale in JavaScript
- Converti esadecimale in ASCII
L’intenzione principale di sviluppare l’American Standard Code for Information Interchange (ASCII) era lo scambio di dati tra i dispositivi. ASCII è una tabella di codici che ha caratteri leggibili dall’uomo ed è composta da ciascun carattere mappato su numeri specifici (i cosiddetti codici ASCII). Come i sistemi di numeri di base binari utilizzati dai computer, utilizziamo sistemi di numeri esadecimali durante la trasmissione di dati su un canale per una comunicazione senza errori. ASCII è un formato leggibile dall’uomo, utilizzato internamente in modo diverso dai computer. Vediamo come possiamo convertire un valore ASCII in un valore esadecimale con JavaScript.
Converti un carattere ASCII in esadecimale in JavaScript
La conversione è facile e non richiede molti passaggi nel codice. Esaminiamo il codice per convertire un carattere ASCII in esadecimale.
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);
}
Produzione:
0x41
0x6e
0x21
In questa sezione, ci occuperemo della conversione di un carattere ASCII nell’equivalente esadecimale per esso. Abbiamo il processo di conversione spiegato come segue.
-
Nella funzione
window.onload()
di javascript, chiamiamo la funzioneconvertASCIItoHex()
per tradurre il valore ASCII in esadecimale in javascript. La funzionewindow.onload()
viene chiamata al caricamento della pagina in modo che la funzione venga eseguita non appena la pagina viene caricata. -
Nella funzione
convertASCIItoHex()
, passiamo il valore ASCII che deve essere convertito.asciiVal.charCodeAt(0)
restituisce il codice ASCII del valore di input passato nella funzioneconvertASCIItoHex()
come parametro. La tabella ASCII contiene una mappatura al formato lettera leggibile dall’uomo e un codice ad essi associato. Sembra il seguente.DECIMALE HEXCODE Simbolo Descrizione 65 41 UN A maiuscola 66 42 B Si maiuscolo 67 43 C Do maiuscolo 68 44 D Re maiuscolo 69 45 E Mi maiuscolo 70 46 F Fa maiuscolo 71 47 G Sol maiuscolo 72 48 H H maiuscola 73 49 io I maiuscola 74 4A J J . maiuscolo La colonna decimale rappresenta il codice per il valore ASCII. Ad esempio, il codice ASCII per A
è 65. La funzioneasciiVal.charCodeAt(0)
restituisce il valore ASCII diasciiVal
che contiene il valoreA
. Quindi restituisce 65. Memorizziamo il codice ASCII nella variabileasciiCode
. -
Una volta ottenuto il codice ASCII corrispondente al valore del parametro, il nostro prossimo passo è convertirlo in esadecimale. Nello snippet
asciiCode.toString(16)
, la funzione.toString(16)
restituisce il valore esadecimale come stringa. Memorizziamo il valore della stringa esadecimale nella variabilehexValue
. -
Nel passaggio finale, consoliamo l’equivalente esadecimale dell’attributo passato utilizzando la funzione
console.log()
di JavaScript.
Nota
-
Può sembrare strano aggiungere la parola chiave
0x
al valore esadecimale convertito. È un approccio comune seguito in javascript per identificare il numero come valore esadecimale (fare riferimento a MSDN Docs per maggiori dettagli). Per il tuo scopo aziendale, possiamo evitarlo e seguire l’output del valore esadecimale dalla funzione.toString(16)
. -
La funzione
toString(16)
è una funzione multiuso in javascript. Possiamo usarlo per convertire in diversi sistemi di base numerica. Dobbiamo passare la base decimale o la radice come parametro alla funzione. Se aspettiamo un equivalente binario del codice ASCII, la funzionetoString(2)
restituirà l’equivalente binario del valore decimale. La funzione convertirà l’oggetto in una stringa prima di restituire il valore binario. E quindi, il tipo restituito di.toString()
è stringa. -
Il codice precedente considera una sola conversione di caratteri. Quindi se si fornisce una stringa come input come
convertASCIItoHex("HELLO")
, la funzione restituirà il valore esadecimale della prima lettera “H”. Viene eseguito dalla funzionecharCode(0)
inasciiVal.charCodeAt(0)
.
Conversione di una stringa di ASCII in equivalente esadecimale in JavaScript
I requisiti più comuni che otteniamo nelle nostre vite sono convertire una stringa nel suo insieme nel valore esadecimale equivalente piuttosto che in un carattere. Il seguente programma accetta una stringa come input e restituisce una stringa di equivalente esadecimale per ogni carattere come output. Ogni valore esadecimale sarà separato da ' '
uno spazio per una migliore leggibilità e comprensione.
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);
}
Uscita:
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
Qui il convertASCIItoHex()
restituisce un valore di stringa esadecimale corrispondente all’input di stringa fornito. Restituirà un valore di tipo Stringa
. La stringa di codici esadecimali è separata da spazi per leggibilità e chiarezza. Vediamo i passaggi che abbiamo seguito.
-
Come discusso nella sezione precedente, chiamiamo la funzione
window.onload()
di javascript e poi chiamiamo la funzioneconvertASCIItoHex("Hello!")
passando una stringa"Hello!"
come suo parametro. -
Nella funzione
convertASCIItoHex()
, dividiamo la stringa di input in caratteri per facilitarne l’elaborazione. Quindi, in questa fase, la stringa"Hello!"
si converte in["H", "e", "l", "l", "o", "!"]
, un array di stringhe. -
Successivamente, applichiamo “la conversione da ASCII a esadecimale” su ciascun elemento dell’array con l’operatore
.map()
di javascript. Itera su ogni elemento ed esegue una funzione su ciascuno di essi. Passiamo la funzione come funzione in linea o funzione freccia. -
Nella funzione, usiamo
charCodeAt(0)
per ottenere il codice ASCII dell’elemento dell’array corrente. Quindi, sull’oggetto codice ASCII, applichiamo iltoString(16)
per convertire il valore ASCII in una base esadecimale. Quindi inseriamo il valore esadecimale nell’arrayhex
, l’array di output. Nota che usiamo uno spazio tra la conversione consecutiva per motivi di leggibilità. Puoi anche preferire,
o;
separatore come richiesto dalle esigenze aziendali. -
Con
hex = hex + tempHex + ' '
aggiungiamo uno spazio dopo ogni conversione di elemento. Quindi, il risultato finale avrà uno spazio finale. Per rimuoverlo, usiamo la funzione.trim()
di javascript. -
Infine, l’array di stringhe convertito viene registrato nella console con
console.log(hex)
.
Converti esadecimale in ASCII
Ora, poiché abbiamo i valori esadecimali pronti, la domanda che sorge è come confermiamo che l’output è come previsto. Raggiungiamo il nucleo della funzionalità con la funzione fromCharCode(ASCIICode)
di javascript che restituisce il carattere ASCII corrispondente al codice ASCII passato nel parametro. Qui, possiamo usare il seguente codice.
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);
}
Produzione:
Hello!
Good Morning World!!
Un paio di metodi fanno la magia qui. parseInt(i, 16)
converte un input di base 16
in base decimale. Quindi, con questo metodo, otteniamo il codice ASCII per il valore esadecimale. E il String.fromCharCode(tempAsciiCode)
prende il codice ASCII passato come parametro a questa funzione e restituisce il carattere ASCII corrispondente al codice.
Osservazioni
- La forma leggibile più comunemente usata di ASCII include alfabeti, numeri e caratteri speciali. Con i codici javascript, intendiamo coprire questi set di caratteri. Non possiamo testare determinati codici ASCII in JavaScript, come ACK: carattere di riconoscimento, ETX: carattere di fine testo, ecc.
- La variabile stringa JavaScript può contenere una lunghezza massima di 253-1 caratteri secondo gli standard ES8. E ciò equivale a circa 512 MB di dati in Chrome e circa un Gigabyte di dati in Firefox. Quindi, possiamo convertire valori di stringa più lunghi usando il nostro codice.