ASCII (izgovori se az-kee ali ass-key, če gre za Američana) je tabela znakov za računalnike. Gre za binarno kodo, ki jo elektronska oprema uporablja za obdelavo besedila z angleško abecedo, številkami in drugimi običajnimi simboli. ASCII je okrajšava za American Standard Code for Information Interchange (Ameriška standardna koda za izmenjavo informacij). Razvit je bil v šestdesetih letih prejšnjega stoletja in temelji na prejšnjih kodah, ki so jih uporabljali telegrafski sistemi. ASCII je bil definiran kot 7-bitna koda, kar omogoča 128 različnih vrednosti (0–127).

Zgradba kode in osnovne značilnosti

Koda vsebuje definicije 128 znakov: večina teh znakov so tiskljivi znaki abecede, kot so abc, ABC, 123 in ?&!. Obstajajo tudi kontrolni znaki, ki jih ni mogoče natisniti, temveč nadzorujejo obdelavo besedila, na primer za začetek nove vrstice. Ti znaki običajno zasedajo vrednosti 0–31, medtem ko so tiskljivi znaki v območju 32–126. Poseben znak DEL ima vrednost 127. Večina kontrolnih znakov se danes ne uporablja več za svoj prvotni namen v strojni opremi, a jih protokoli in sistemi še vedno razumejo. ASCII sam po sebi ne vsebuje oblikovnega nadzora (za krepko ali ležečo pisavo itd.), saj nudi le osnovne znake in kontrolne kode.

Najpomembnejši razponi in primeri:

  • 0–31: kontrolni znaki (npr. NUL, LF, CR, HT, BEL itd.),
  • 32: presledek (space),
  • 33–47: ločila in simboli,
  • 48–57: številke '0'–'9',
  • 65–90: velike črke 'A'–'Z',
  • 97–122: male črke 'a'–'z',
  • 127: DEL (delete).

Včasih kdo govori o datoteki ali dokumentu v ASCII, kar pomeni, da je v navadnem besedilu.

Primeri binarnih in številskih predstavitev

V 7-bitni obliki ASCII predstavlja 1000001 (7 bitov) veliko črko A; to ustreza 65 v decimalni (bazi 10) zapisih in 41 v šestnajstiškem sistemu. Podobno 1000010 predstavlja B, 1000011 predstavlja C itd. Ko se ASCII prenaša ali shranjuje v sodobnih sistemih, se pogosto uporablja 8-bitni bajt, kjer je najvišji (8.) bit lahko nič ali pa ga uporabijo za pariteto ali razširitve znakov. Zato v praksi pogosto slišimo, da se ASCII »shrani v 8 bitih«, vendar je originalni standard 7-bitni.

Osem bitov je omogočalo vključitev bita paritete v vsak bajt, poslan prek zaporednih vrat ali modemov; ta bit se uporablja za zaznavanje napak. To je bilo pomembnejše pred leti, ko so bile povezave pogosto hrupne.

Kontrolni znaki — najpogosteje srečani

Spodaj je seznam nekaterih najpogosteje omenjanih kontrolnih znakov (ime in dekadna koda):

  • NUL (0) – konec niza / ničelni znak,
  • SOH (1), STX (2), ETX (3) – začetki/predenje prenosov (zgodovinsko),
  • EOT (4) – konec prenosa,
  • ENQ (5), ACK (6) – poizvedbe / potrditev,
  • BEL (7) – zvok (zvonenje),
  • BS (8) – backspace,
  • HT (9) – horizontalni tabulator (tab),
  • LF (10) – line feed (nova vrstica, '\n'),
  • VT (11), FF (12) – vertikalni tabulator / form feed,
  • CR (13) – carriage return (vrni k začetku vrstice, '\r'),
  • ESC (27) – escape,
  • DEL (127) – delete.
Ti znaki so imeli konkretne strojne učinke (premik tiskalnega valja, zvok zvonca ipd.), zato so v zgodovini terminalov in telekomunikacij igrali pomembno vlogo. Danes so LF in CR najpogosteje relevantni zaradi razlik v koncih vrstic med operacijskimi sistemi (Unix/Linux uporablja LF, Windows običajno CR+LF).

Razširitve in sodobna uporaba

Ker je bilo za nekatere jezike in posebne simbole potrebno več kot 128 znakov, so nastale 8-bitne razširitve ASCII (npr. ISO-8859-1, Windows-1252). Kasneje pa je Unicode (in njegova kodna oblika UTF-8) postal prevladujoč standard za večjezično predstavitev znakov. Pomembno je, da so prvih 128 znakov Unicode enakovredni ASCII — to pomeni, da je ASCII neposredno združljiv z UTF-8: bajti 0–127 v UTF-8 predstavljajo iste znake kot v ASCII.

ASCII ostaja temelj številnih protokolov in formatov (npr. HTTP glave, e-poštni naslovi v omejeni obliki, številne skripte in konfiguracijske datoteke), zato je poznavanje osnov ASCII še vedno uporabno pri razumevanju delovanja besedilnih podatkov in prenosov med sistemi.