I computer usano i numeri. Le persone usano lettere e simboli. Abbiamo bisogno di un ponte. ASCII è quel ponte. ASCII trasforma ogni lettera o simbolo in un numero. Il computer memorizza il numero. Quando leggiamo, il computer mostra di nuovo la lettera. È così che funziona il testo in molti file e app.
Un computer funziona con l'elettricità. Vede due stati. Acceso e Spento. Chiamiamo questi stati bit . Un bit è uno 0 o un 1. Molti bit insieme formano numeri più grandi. Otto bit formano un byte . Con i bit, possiamo contare. Con il conteggio, possiamo dare un nome alle cose. ASCII usa il conteggio per dare un nome a lettere e simboli.
Un bit fa due scelte. Due bit fanno quattro scelte. In matematica, questo concetto è rappresentato come \(\;2^n\) . Per \(n=7\) , otteniamo \(2^7 = 128\) scelte. Per \(n=8\) , otteniamo \(2^8 = 256\) scelte. L'ASCII usa 7 bit. Questo dà 128 elementi denominati. In seguito si sono creati insiemi di 8 bit con 256 elementi. Questi sono chiamati ASCII estesi .
ASCII è l'acronimo di American Standard Code for Information Interchange . È nato negli anni '60. È stato sviluppato per le prime stampanti, telescriventi e computer. Assegna un numero a ogni lettera, numero, spazio e ad alcuni simboli. Assegna anche numeri speciali ad azioni come il ritorno a capo . La prima versione utilizzava 7 bit, quindi aveva numeri da 0 a 127.
Notate una cosa interessante. Le lettere minuscole sono 32 in più rispetto alle loro coppie maiuscole. Ad esempio, \(\;97 - 65 = 32\) . Quindi 'a' è 32 in più di 'A'. 'b' è 32 in più di 'B', e così via. Questo schema semplifica alcune operazioni al computer.
Quando si preme il tasto Invio, il computer potrebbe inviare LF, CR o entrambi, a seconda del sistema. Molti strumenti Internet utilizzano LF. Alcuni vecchi sistemi utilizzavano CR e LF insieme.
Possiamo scrivere i numeri in diversi modi. Il sistema decimale è il metodo di conteggio più comune, usando le cifre da 0 a 9. Il sistema binario usa solo 0 e 1. Il sistema esadecimale usa le cifre da 0 a 9 e da A a F.
Come fa il sistema binario a calcolare 65 per 'A'? Osserva i bit in 01000001. Il bit più a sinistra è per 128. Poi 64, 32, 16, 8, 4, 2, 1. Solo 64 e 1 sono attivi. Quindi \(01000001_{(2)} = 0\times128 + 1\times64 + 0\times32 + 0\times16 + 0\times8 + 0\times4 + 0\times2 + 1\times1 = 65\) .
Premi un tasto. La tastiera invia un codice al computer. Il sistema lo converte in un numero di carattere. Per molti tasti, quel numero è il codice ASCII. L'app memorizza il numero. Quando mostra il testo, cerca il numero e disegna la lettera. Quando salvi, i numeri vengono inseriti nel file.
Pensa al messaggio "Ciao!" . Le lettere sono H, i e !. I loro numeri ASCII sono 72, 105 e 33. In binario, sono 01001000, 01101001 e 00100001. La rete invia questi bit. L'altra parte legge i bit. Vede i numeri. Mostra di nuovo H, i e !. Ecco come si muovono i semplici messaggi di testo.
La gente voleva più simboli. Volevano lettere come é, ñ e ø. Volevano simboli monetari come €. Il set a 7 bit aveva solo 128 simboli. Quindi si usavano 8 bit. Con 8 bit, otteniamo \(2^8 = 256\) simboli. La metà superiore, da 128 a 255, veniva utilizzata per lettere e simboli aggiuntivi. Ma c'era un problema. Gruppi diversi sceglievano numeri diversi per quelle lettere aggiuntive. Queste scelte sono chiamate code page .
Poiché le code page sono diverse, lo stesso numero può visualizzare un simbolo diverso su un altro computer. Questo errore si chiama mojibake . Sembrano caratteri strani. Questo è uno dei motivi per cui il mondo è passato a Unicode.
Unicode è un grande standard che supporta numerose lingue, simboli matematici ed emoji. Può contenere oltre un milione di simboli. Esistono molti modi per memorizzare Unicode. Uno dei metodi più diffusi è UTF-8 .
Con il testo solo ASCII, ogni carattere occupa un byte. Quindi la parola "gatto " occupa 3 byte. La frase "ciao mamma" ha 6 caratteri, incluso lo spazio, quindi occupa 6 byte. In matematica semplice, \(\textrm{byte ASCII} = \textrm{numero di caratteri}\) .
I computer spesso ordinano le stringhe in base al numero dei caratteri. L'ordinamento ASCII raggruppa gli elementi in un certo modo.
Ciò significa che Zoo viene prima di Apple se confrontiamo semplici valori ASCII. L'ordinamento avviene in base ai numeri, non in base al suono delle parole.
Nota che la e commerciale è &. Il suo numero ASCII è 38. Il segno più + è 43. Il segno meno - è 45.
Le persone creano immagini usando solo caratteri. Questo è chiamato ASCII art . Ecco un piccolo volto realizzato con caratteri ASCII.
:-) Un sorriso semplice
(^_^) Volto amichevole
o_O Sorpreso
Ogni faccia è composta solo da caratteri come due punti, trattini e parentesi. Nessun colore o forma. Solo testo.
L'ASCII si è sviluppato a partire dalle telescriventi e dai primi computer. Nel 1963, ne fu concordata una prima versione. Aiutò molte macchine diverse a comunicare tra loro. Con un codice condiviso, una lettera come la A significava lo stesso numero ovunque. Questo rendeva più facile inviare messaggi e stampare testo.
ASCII ha solo 128 elementi. Non è sufficiente per tutte le lingue. Non può visualizzare il cinese, l'hindi, l'arabo o molti altri sistemi di scrittura. Non può visualizzare gli emoji. Inoltre, non può visualizzare molti simboli matematici e musicali. Per questi, utilizziamo Unicode. Unicode può visualizzare molti sistemi di scrittura e simboli. UTF-8 è un modo per memorizzarli. La buona notizia è che tutto il testo ASCII funziona all'interno di UTF-8. Quindi i sistemi moderni possono leggere facilmente il vecchio ASCII.
La maggior parte delle app si aspetta UTF-8. Ma quando un file contiene solo lettere e simboli ASCII, appare identico anche in UTF-8. I programmatori apprezzano questa caratteristica perché semplifica le cose. Pagine web, API e molti strumenti utilizzano UTF-8, che include ASCII senza modifiche.
ASCII è un set di 7 bit. Ciò significa fino a \(2^7 = 128\) caratteri diversi. Un set esteso a 8 bit ha \(2^8 = 256\) elementi. Se il testo contiene solo caratteri ASCII e contiene \(n\) caratteri, utilizza \(n\) byte. In un messaggio minuscolo come OK , \(n = 2\) . Quindi utilizza 2 byte quando viene memorizzato come ASCII o UTF-8.
Alcuni elementi ASCII eseguono azioni e non stampano. Lo spazio stampa uno spazio vuoto. Ma LF e CR spostano il cursore. Il tasto TAB salta. Quando apriamo un file in un editor speciale, LF potrebbe essere visualizzato come \n. Quel simbolo non fa parte del codice ASCII. È un modo in cui l'editor mostra l'interruzione di riga.
Immagina un'etichettatrice che stampa i nomi. Legge il nome come caratteri. Trasforma ogni carattere in numeri ASCII. Memorizza questi numeri in memoria. Stampa le lettere cercando come disegnare ogni numero. Se soddisfa LF (10), passa alla riga successiva prima di stampare altro.
Di nuovo, osserviamo il carattere '!'. Possiamo scrivere il suo codice in tre modi. Decimale: 33. Binario: 00100001. Esadecimale: 21. In forma matematica, \(\;33_{(10)} = 00100001_{(2)} = 21_{(16)}\) . Ogni forma rappresenta lo stesso valore. Le app scelgono la forma di cui hanno bisogno. Le persone spesso leggono i numeri decimali. I computer preferiscono il binario. Esadecimale è un modo abbreviato per leggere i numeri binari.
L'ASCII è piccolo e chiaro. È stato creato in anticipo. Molti strumenti e protocolli sono stati sviluppati su di esso. Poiché i primi 128 codici Unicode corrispondono all'ASCII, il piano funziona ancora oggi. Ecco perché è possibile aprire file di testo molto vecchi su un nuovo telefono o laptop e vedere le stesse lettere.
Apri un file con il testo Hello . I byte sono i numeri ASCII 72 101 108 108 111. In binario, sono 01001000 01100101 01101100 01101100 01101111. L'app legge ogni numero e disegna Hello sullo schermo. Se il numero successivo è 10, si sposta su una nuova riga prima di disegnare altro testo. Ecco quanto è semplice e costante il processo.
Pensate al numero 10. In binario, è 00001010. In decimale, è dieci. In ASCII, 10 è LF, il line feed. Questo dimostra come lo stesso numero possa essere rappresentato in modi diversi. Il significato deriva da come usiamo il numero. Se diciamo che è un codice di carattere, allora 10 significa LF. Se diciamo che è solo un conteggio di mele, allora sono dieci mele. Il contesto è importante.
Invieremo la parola Sun da un dispositivo all'altro. I codici sono 'S' 83, 'u' 117, 'n' 110. In binario, 83 è 01010011, 117 è 01110101, 110 è 01101110. I bit viaggiano come segnali On e Off. L'altro dispositivo trasforma i bit in numeri. Poi trasforma i numeri in lettere. Mostra la parola Sun. Se il codice successivo è 32, è uno spazio. Se il successivo è 33, è un '!'. Le regole rimangono le stesse ogni volta. Questa è la potenza di un codice condiviso.