ASCII (tariama az-kee, amerikiečių – ass-key) – tai kompiuteriams skirta simbolių lentelė. Tai dvejetainis kodas, naudojamas elektroninėje įrangoje tekstui apdoroti naudojant anglų kalbos abėcėlę, skaičius ir kitus įprastus simbolius. ASCII yra santrumpa, reiškianti Amerikos standartinį informacijos mainų kodą (American Standard Code for Information Interchange). ASCII buvo sukurtas XX a. šeštajame–septintajame dešimtmetyje ir remiasi ankstesniais kodais, naudotais telegrafo sistemose bei ankstyvųjų kompiuterių sąveikai. Pirma ASCII versija publikuota 1963 m.; vėliau jis buvo tobulinamas ir standartizuotas.

Kas įeina į ASCII

Kodas apima 128 simbolių apibrėžtis (kodas 0–127): dauguma jų yra spausdintini abėcėlės simboliai, pavyzdžiui, abc, ABC, 123 ir ?&!. Tai taip pat apima specialius neatspausdinamus (kontrolinius) ženklus, kurie valdo teksto apdorojimą — pvz., naujos eilutės pradžią ar tabuliacijos komandą. Šie kontroliniai ženklai dažnai pateikiami kairiajame toliau pateiktos lentelės stulpelyje. Dauguma kontrolinių ženklų šiandien nebenaudojami pagal pirminę paskirtį, tačiau kai kurie (pvz., naujos eilutės arba tabuliacijos) išlieka svarbūs teksto apdorojimui. ASCII neturi vietinių formatavimo komandų (paryškinimo, kursyvo ir pan.) — jis apibrėžia tik simbolius, o ne jų išvaizdą.

Kontroliniai simboliai (pavyzdžiai)

  • NUL (kodas 0) – nulinis simbolis;
  • LF (Line Feed, kodas 10) – nauja eilutė (Unix tipo sistemos);
  • CR (Carriage Return, kodas 13) – grįžimas į eilutės pradžią (senosios Mac sistemos ir Windows kartu su LF kaip CR+LF);
  • TAB (Horizontal Tab, kodas 9) – horizontali tabuliacija;
  • BEL (Bell, kodas 7) – garsinis signalas;
  • ESC (Escape, kodas 27) – pabėgimo seka komandoms pradėti;
  • DEL (kodas 127) – dažnai naudojamas kaip „ištrinti“ žymuo).

Skaitmeninis atvaizdavimas

ASCII kodai paprastai pateikiami dešimtainėmis reikšmėmis (pvz., A = 65), šešioliktainėse reikšmėse (A = 0x41) arba dvejetainiu pavidalu. Pagal originalų ASCII apibrėžimą naudojami 7 bitai (kodažiai 0–127). Pavyzdžiui, didžioji raidė A atitinka dvejetainį kodą 1000001 (7 bitai), tai yra 65 dešimtainėje ir 41 šešioliktainėje sistemoje. Kai ASCII simboliai buvo perduodami ryšio kanalais ar saugomi baitais, dažnai naudojamas 8 bitų baitas: tokiu atveju prie 7 bitų pridėtas papildomas bitas (pvz., pariteto bitas arba tiesiog nulinis bitas), todėl A gali būti siunčiama kaip 01000001 (8 bitai).

Pariteto bitas ir perdavimas

Aštuoni bitai leido prie kiekvieno nuosekliojo prievado arba modemo siunčiamo baito pridėti pariteto bitą; šis bitas naudotas paprastoms klaidų aptikimo schemoms. Tai buvo svarbu ankstyvuose ryšiuose, kai perdavimo linijos dažnai būdavo triukšmingos. Šiandien patikimesni ryšio protokolai ir sudėtingesnės klaidų taisymo priemonės dažnai pakeitė paprastą pariteto bitą.

Išplėstinės kodavimo schemos ir Unicode

Nors ASCII apibrėžia tik 128 simbolius, vėlesnės sistemos išplėtė simbolių rinkinį pridedant šeštąjį bitą arba naudojant visą 8 bitų baitą, leisdamos apibūdinti 256 simbolių rinkinius. Šios 8 bitų transformacijos paplito kaip „išplėstinis ASCII“ arba įvairūs koduotės standartai (pvz., ISO 8859-1, Windows-1252). Tačiau skirtingos išplėstinės lentelės nebuvo tarpusavyje suderinamos — todėl atsirado poreikis universalesniam sprendimui. Svarbiausia šiuolaikinė alternatyva yra Unicode, kuris apima ASCII kaip savo pradines 128 reikšmes ir platina žymėjimą visoms pasaulio kalboms bei tūkstančiams simbolių.

ASCII ir „paprastas tekstas“

Kartais žmonės kalba apie ASCII failą ar dokumentą, t. y. apie paprastą tekstą. Tai reiškia, kad failas sudarytas tik iš ASCII simbolių (arba suderinamos koduotės), be papildomų formatavimo instrukcijų ar dvejetainių struktūrų. Paprastojo teksto failai yra lengvai skaitomi ir apdorojami daugelyje programų bei operacinių sistemų.

Kodėl ASCII svarbus šiandien

Nors šiuolaikinės sistemos dažnai naudoja Unicode, ASCII išlieka fundamentine technologija: jo 0–127 reikšmės yra suderinamos su daugeliu protokolų, programavimo kalbų ir teksto formatų. ASCII simboliai naudojami URL, e‑laiškuose, programavimo šaltinio kode, protokoluose (pvz., HTTP, SMTP) ir daugelyje kitų sričių, todėl supratimas, kas yra ASCII ir kaip jis veikia, vis dar yra naudingas.