Come l’esadecimale semplifica il codice binario per gli sviluppatori

12

L’esadecimale è un sistema di numerazione in base 16. Sostituisce le cifre decimali standard da 0 a 9 con le lettere dalla A alla F. Ciò ti dà 16 simboli distinti con cui lavorare. Il nome stesso suggerisce la sua struttura. “Hexa” deriva dalla parola greca per sei, e “decimale” si riferisce a un sistema in base 10. Insieme, descrivono un sistema che colma il divario tra due modi di contare molto diversi.

I computer vivono in binario. Parlano per zeri e uno. Gli esseri umani vivono in decimali. Contiamo su dieci dita. Convertire lunghe stringhe di codice binario direttamente in qualcosa che un essere umano può leggere rapidamente è una seccatura. È noioso. È soggetto a errori. L’esadecimale risolve questo attrito.

Perché l’esadecimale è importante nell’informatica

La ragione principale per utilizzare l’esadecimale nell’informatica è la leggibilità. Le stringhe binarie sono notoriamente difficili da analizzare per gli esseri umani. Un singolo byte di dati può assomigliare a questo: “11111011”. È facile perderne un po’. È difficile individuare uno schema. Converti lo stesso byte in esadecimale e diventa “FB”. Molto più pulito. Molto più facile da gestire.

Poiché 16 è una potenza di 2 ($2^4$), la conversione tra binario ed esadecimale è semplice. Raggruppi le cifre binarie in gruppi di quattro. Ogni gruppo corrisponde perfettamente a una cifra esadecimale. Questa relazione matematica lo rende un ponte naturale.

Storicamente, i sistemi base 16 non sono stati inventati per i computer. Gli antichi sistemi di misurazione cinesi utilizzavano concetti esadecimali molto prima che esistessero i chip di silicio. Ma nell’era digitale svolge una funzione specifica e fondamentale. Traduce il linguaggio macchina grezzo in un formato con cui sviluppatori, programmatori e amministratori di sistema possono effettivamente lavorare.

Come funzionano le operazioni esadecimali

Tutte le operazioni aritmetiche standard che conosci dal decimale si applicano qui. Puoi aggiungere, sottrarre e moltiplicare utilizzando le regole in base 16. La logica rimane la stessa; cambiano solo i simboli ed i punti di riporto.

Considera una semplice aggiunta. In decimale, $ 10 + 10 = 20 $. In binario, è $1010 + 1010 = 10100$. In esadecimale, consideriamo $A + B$.

$A$ rappresenta 10. $B$ rappresenta 11.
$10 + 11 = 21$ in decimale.
In esadecimale, 21 è rappresentato come “15” (uno sedici e cinque uno).

Quindi, $A + B = 15_{16}$.

Questo non è solo teorico. Quando esegui il debug degli indirizzi di memoria o analizzi i codici colore per il web design, hai a che fare quotidianamente con valori esadecimali. È lo standard per rappresentare i dati in una forma compatta e a misura d’uomo.

Dove viene utilizzato l’esadecimale

Incontri l’esadecimale più spesso di quanto potresti pensare. È ovunque nella programmazione di basso livello. Gli indirizzi di memoria vengono generalmente visualizzati in formato esadecimale. Gli indirizzi MAC per le schede di rete sono codificati esadecimali. Anche i codici colore HTML, come #FF5733, si basano su questo sistema.

La scelta non è arbitraria. Si tratta di efficienza e chiarezza. Il binario è troppo lungo. Il decimale è incompatibile con la base binaria dell’architettura del computer. L’esadecimale si trova proprio nel mezzo. Riduce la lunghezza delle rappresentazioni dei dati

Il binario è accurato. Non è leggibile.

Una stringa di uno e zero va bene per una macchina. È un incubo per un essere umano. L’esadecimale risolve questo problema. Comprime i dati. Fa sembrare i meccanismi grezzi dell’informatica qualcosa che una persona può effettivamente analizzare.

Il calcolo è semplice. Hex utilizza la base 16. Il decimale utilizza la base 10. Il binario utilizza la base 2.

Poiché 16 è maggiore di 10 e 2, le stringhe esadecimali sono più corte. Metti più informazioni in meno caratteri. Prendi un numero che richiede 24 cifre in binario. Sono 7 cifre decimali. Nell’esadecimale? Si riduce a soli 6.

Questa compressione non riguarda solo il risparmio di spazio sullo schermo. Riguarda la sanità mentale.

Dove compaiono gli esadecimali in Tech

Vedi questo sistema ovunque una volta che sai come guardare. È il collante che tiene insieme le istruzioni macchina di basso livello e le interfacce utente di alto livello.

  • Indirizzi di memoria: le posizioni RAM sono spesso etichettate con codici esadecimali a 16 o 32 bit.
  • Colori Web: Quel codice #RRVVBB che vedi nei CSS? Sono i valori rosso, verde e blu in esadecimale.
  • Sicurezza di rete: le chiavi WEP meno recenti si basano sulla notazione esadecimale.
  • Codifica dei caratteri: Unicode utilizza esadecimale per mappare i simboli.
  • ID hardware: Ogni scheda di rete ha un indirizzo MAC univoco scritto in esadecimale.

Come funziona il sistema Base-16

Hex utilizza dieci cifre e sei lettere.

Da 0 a 9. Quindi da A a F.

A è uguale a 10. B è 11. C è 12. D è 13. E è 14. F è 15.

Perché queste lettere? Perché in qualsiasi sistema standard esauriamo le cifre dopo il 9. Abbiamo bisogno di simboli per i valori più alti.

C’è un collegamento diretto al binario. Ogni cifra esadecimale rappresenta esattamente quattro bit.

Quattro bit possono creare 16 combinazioni uniche (da 0000 a 1111). È un abbinamento perfetto.

Prendi la lettera C. In formato decimale è 12. In binario è 1100. Un simbolo. Quattro bit. Conversione pulita.

Conversione da binario a esadecimale

Il trucco è raggruppare.

Non converti cifra per cifra. Dividi la stringa binaria in blocchi di quattro, partendo da destra.

Guarda questo numero binario:

“0111 1010”.

Dividilo.

Gruppo di sinistra: 0111. Sono 7.
Gruppo destro: 1010. Questo è 10. In esadecimale, 10 è A.

Mettili insieme. Ottieni “7A”.

Provane uno più difficile.

Decimale: 1763.
Binario: 11011100011.

È disordinato. Quindi lo riempiamo a sinistra con zeri finché non diventa divisibile per quattro.

“0110 1110 0011”.

Ora leggi ogni pezzo.
“0110” è 6.
“1110” è 14 (E).
“0011” è 3.

Risultato: “6E3”.

Più corto. Più pulito. Stesso valore.

Recuperare il valore decimale

Come leggi l’esadecimale se sei abituato alla base 10? Calcoli tu la posizione.

Ogni cifra ha un peso in base alla sua posizione, contando da destra a sinistra a partire da 0.

Prendi “A2F”.

La F è in posizione 0. Vale 15. Quindi, 15 x 16⁰.
Il 2 è nella posizione 1. Vale 2. Quindi, 2 x 16¹.
La A è in posizione 2. Vale 10. Quindi, 10 x 16².

Fai i conti.
10 x 256 = 2560.
2 x 16 = 32.
15 x 1 = 15.

Aggiungili.
2560 + 32 + 15 = 2607.

È solo valore posizionale. Come le decine e le centinaia nella matematica normale, ma con potenze di 16.

ASCII e i limiti della codifica di base

Hex non è solo per i numeri. È così che i computer parlano del testo.

ASCII definisce 128 caratteri. Utilizza 7 bit. L’ottavo bit è zero.

Puoi mapparli su valori esadecimali (da 00 a 7F).

  • 00-1F: Codici di controllo. Non visibile. Backspace, campanello, entra.
  • 20-2F: Caratteri speciali. Spazi, punteggiatura, parentesi.
  • 30-39: I numeri da 0 a 9.
  • 3A-3F: Più simboli. Due punti, punto e virgola, barra.
  • 41-5A: Maiuscole A-Z.
  • 61-7A: A-Z minuscola.
  • 7F: Elimina comando.

Questo funziona per l’inglese. È rigido. È efficiente.

Ma fallisce altrove.

Il francese ha bisogno di accenti. Il tedesco ha bisogno dell’umlaut. L’arabo e il cinese necessitano di scritture completamente diverse. ASCII non può gestirli.

Ecco perché esiste Unicode. Espande enormemente il set di caratteri. Utilizza ancora l’esadecimale per la rappresentazione, ma l’ambito è globale.