← Toate instrumentele

Tabel ASCII

O referință completă a tabelului ASCII cu coduri zecimale, hex și binare, caractere de control versus printabile și relația dintre ASCII, Unicode și UTF-8.
DecHexOctCharDenumire

Tabelul ASCII: cum au devenit 128 de numere fundamentul textului

ASCII, prescurtare de la American Standard Code for Information Interchange, este codificarea care a învățat calculatoarele să cadă de acord asupra a ceea ce înseamnă o literă. Publicat în 1963 și rafinat de-a lungul anilor '60, mapează fiecare caracter de bază al textului în limba engleză, cifrele și câteva semnale de control pe numere pe care o mașină le poate stoca și transmite. Când apeși tasta pentru un A majuscul, calculatorul tău nu stochează o formă, ci stochează numărul 65. ASCII este tabelul de căutare care face ca acel număr să însemne A oriunde călătorește.

Standardul este renumit pentru compactitatea sa. ASCII este un cod pe 7 biți, ceea ce înseamnă că fiecare caracter încape în șapte cifre binare, iar întregul repertoriu acoperă exact 2 la puterea 7, adică 128 de puncte de cod distincte, numerotate de la 0 la 127. Această economie a fost deliberată. Telexurile și modemurile timpurii erau lente și costisitoare, așa că fiecare bit conta. Șapte biți erau suficienți pentru a acoperi literele latine majuscule și minuscule, cele zece cifre, semnele de punctuație obișnuite și caracterele de semnalizare care păstrau dispozitivele sincronizate, cu un bit rămas, pe care multe sisteme îl foloseau pentru verificarea erorilor.

Grilă abstractă luminoasă de celule de caractere ordonate, în indigo închis cu lumină cyan și aurie
ASCII aranjează fiecare caracter într-o grilă fixă și ordonată de 128 de celule numerotate.

Două jumătăți: caractere de control și caractere afișabile

Tabelul se împarte clar în două regiuni. Codurile de la 0 la 31, plus codul 127 (DEL), sunt caracterele de control. Acestea nu afișează un glif pe ecran. În schimb, instruiesc un dispozitiv să facă ceva: codul 9 este o tabulare orizontală, codul 10 este saltul de linie care trece la un rând nou, codul 13 este returul de caret, iar codul 7 este semnalul sonor care făcea odinioară un terminal să sune audibil. În total există treizeci și trei de astfel de coduri de semnalizare, și deși multe sunt acum curiozități istorice, saltul de linie, returul de caret și tabularea rămân esențiale pentru modul în care sunt formatate fișierele text astăzi.

Codurile de la 32 la 126 sunt caracterele afișabile, nouăzeci și cinci în total. Codul 32 este spațiul, care se consideră afișabil deoarece avansează cursorul, chiar dacă nu afișează nimic. De acolo obții semnele de punctuație și simbolurile, cifrele de la 0 la 9 la codurile 48-57, literele majuscule de la A la Z la codurile 65-90 și literele minuscule de la a la z la codurile 97-122. O proprietate elegantă rezultă din această așezare: versiunile minusculă și majusculă ale aceleiași litere diferă cu exact 32, motiv pentru care schimbarea unui singur bit convertește caseta. Aceste regularități nu sunt întâmplătoare, ci au fost concepute astfel încât sortarea și conversia caselor să poată fi realizate prin aritmetică simplă.

Zecimal, hexazecimal și binar: trei perspective asupra unui singur număr

Fiecare cod ASCII este pur și simplu un număr, iar tu îl vei vedea scris în trei moduri. Zecimalul este forma uzuală, în bază 10, deci A este 65. Hexazecimalul, bază 16, este forma la care apelează programatorii, deoarece se aliniază cu octeții: A este 0x41, iar intervalul afișabil merge de la 0x20 la 0x7E. Binarul, bază 2, este forma pe care hardware-ul o stochează efectiv, deci A este 1000001 pe cei șapte biți ai săi. Același caracter, trei notații, iar fluența în trecerea între ele este o competență de bază atunci când citești descărcări de memorie sau trafic de rețea. Dacă lucrezi des cu aceste conversii, setul mai amplu de tabele de referință de pe speedor.net îți păstrează mapările la un clic distanță.

Fluxuri de lumină binară și hexazecimală curgând în sloturi de glife luminoase pe un fundal bleumarin
Binarul și hexazecimalul sunt pur și simplu baze diferite care descriu același punct de cod ASCII.

Unde mai contează ASCII

Ar fi o greșeală să încadrezi ASCII la capitolul istorie. Este viu în munca zilnică a oricui atinge cod. Limbajele de programare tratează literalele de șir, fișierele sursă și cuvintele-cheie ale protocoalelor ca ASCII la nivel de octet. Protocoale de rețea precum anteturile HTTP, SMTP și multe formate de configurare sunt definite în ASCII pentru a rămâne lizibile pentru oameni. Când un șir de caractere pare corupt, dezvoltatorii apelează la un vizualizator hexazecimal și citesc octeții brutu în raport cu tabelul ASCII pentru a depista un caracter de control rătăcit sau un final de linie greșit. Codificarea URL, Base64 și secvențele de eludare (escape) se bazează toate pe valorile ASCII. Pentru oricine depanează erori de codificare, o referință rapidă lângă instrumentele noastre pentru dezvoltatori transformă un octet misterios într-un răspuns evident.

De la ASCII la Unicode și UTF-8

ASCII a gestionat excelent limba engleză și aproape nimic altceva. Un plafon de 128 de caractere nu poate cuprinde literele cu diacritice, chirilica, chineza, araba sau emoji. Unicode a răspuns acestei limitări atribuind un număr unic, numit punct de cod, fiecărui caracter din fiecare sistem de scriere, acum mult peste o sută de mii. Esențial, Unicode este un catalog de caractere, nu un format de stocare, așa că are nevoie de o codificare pentru a transforma acele puncte de cod în octeți.

UTF-8 este acea codificare și este motivul pentru care ASCII nu a dispărut niciodată cu adevărat. UTF-8 folosește între unu și patru octeți per caracter, și a fost conceput astfel încât punctele de cod de la 0 la 127, întregul interval ASCII, să fie stocate într-un singur octet, identic cu ASCII simplu. Asta face UTF-8 perfect compatibil retroactiv: orice fișier ASCII valid este deja un fișier UTF-8 valid. Caracterele de peste 127 folosesc octeți suplimentari. Această compatibilitate elegantă este un motiv important pentru care UTF-8 alimentează acum marea majoritate a webului. Pe scurt, ASCII este nucleul original de 128 de caractere, Unicode este catalogul universal care îl conține, iar UTF-8 este codificarea care le poartă pe amândouă, păstrând textul ASCII neschimbat octet cu octet.

Întrebări frecvente

Câte caractere conține tabelul ASCII?

ASCII standard definește 128 de caractere, numerotate de la 0 la 127. Dintre acestea, 95 sunt caractere afișabile, inclusiv spațiul, iar 33 sunt caractere de control care semnalizează dispozitivele, fără să afișeze un glif.

Care este diferența dintre caracterele de control și cele afișabile?

Caracterele de control, codurile 0-31 plus 127, instruiesc un dispozitiv să facă ceva, precum un salt de linie sau o tabulare, și nu produc niciun glif vizibil. Caracterele afișabile, codurile 32-126, sunt literele, cifrele, semnele de punctuație și spațiul pe care le vezi efectiv pe ecran.

De ce ASCII este un cod pe 7 biți?

Șapte biți oferă exact 128 de combinații, ceea ce era suficient pentru a acoperi literele engleze, cifrele, punctuația și semnalele de control, economisind în același timp lățime de bandă pe hardware-ul timpuriu, lent. Al optulea bit dintr-un octet era adesea rezervat verificării de paritate a erorilor.

Care este codul ASCII pentru litera A?

A majuscul este 65 în zecimal, 0x41 în hexazecimal și 1000001 în binar. a minuscul este 97 în zecimal, cu exact 32 mai mare, un tipar integrat care permite conversia casei prin aritmetică simplă.

ASCII este același lucru cu Unicode?

Nu. ASCII acoperă 128 de caractere, în timp ce Unicode catalogează peste o sută de mii, în toate sistemele de scriere. ASCII este, practic, primele 128 de puncte de cod din Unicode, deci este un subset mic al standardului mai amplu.

Cum se leagă UTF-8 de ASCII?

UTF-8 este o codificare pentru Unicode care stochează punctele de cod de la 0 la 127 într-un singur octet, identic cu ASCII. Asta face ca fiecare fișier ASCII să fie un fișier UTF-8 valid, motiv pentru care UTF-8 este compatibil retroactiv și domină webul modern.