ASCII (inglise keeles hääldatakse vahel "az-ee", "ass-key" või lihtsalt inglise /ˈæski/) on arvutites kasutatav tähestiku ja sümbolite kodeerimise süsteem. ASCII on lühend Ameerika teabevahetuse standardkoodist (American Standard Code for Information Interchange) ja see määratleb, kuidas esitada teksti arvuti- ja elektroonikaseadmetes, kasutades eelkõige inglise tähestikku, numbreid ja muid levinud sümboleid. Selle eesmärk oli pakkuda ühtset binaarkoodi, mida saaksid kasutada erinevad süsteemid ja seadmed.

Mis on ASCII ja milleks seda kasutatakse?

ASCII on tabel, mis seob iga märgi kindla numbrilise väärtusega. Seda kasutatakse teksti salvestamisel ja edastamisel arvutite ja teiste seadmete vahel ning programmeerimises, tekstifailides ja suhtlusprotokollides. Kui keegi ütleb, et fail on ASCII-formaadis, tähendatakse sellega tavaliselt, et fail sisaldab tavalist teksti ilma erilise binaarse vorminguta.

Ajalugu lühidalt

ASCII töötati välja 1960. aastatel ning see põhineb varasematel telegraafisüsteemides ja telefonivõrkudes kasutatud koodidel. Algne eesmärk oli standardiseerida, kuidas tekst edastatakse ja töödeldakse erinevates seadmetes ja võrkudes.

Märgistiku struktuur ja näited

ASCII määratleb kokku 128 märki, indekseerituna vahemikus 0–127. Neist:

  • 0–31 ja 127 on juhtmärgid (control characters), mida ei trükita ekraanile, vaid kasutatakse teksti ja seadmete juhtimiseks (näiteks uue rea algus või tab).
  • 32–126 on trükitavad märgid: tühik, numbrid 0–9, väike- ja suurtähed (a–z, A–Z) ja sümbolid nagu !, ?, & jms.

Näide: suur täht A on ASCII-koodiga 65 (tavaliselt 0x41 heksades), binaarselt 1000001 kui vaadata 7 bitti. Kui ASCII-sümbol salvestatakse 8-bitisena (tavaline 8-bidine bait), siis sama väärtust võib näha kirjutatuna 01000001.

Juhtmärgid (control characters)

ASCII hõlmab mitmeid juhtmärke, millel oli algselt konkreetne riistvara- või sidefunktsioon. Tuntumad näited:

  • NUL (0) — nullmärk
  • BEL (7) — helisignaal (bell)
  • BS (8) — backspace
  • TAB (9) — horisontaalne tab
  • LF (10) — line feed (uue rea alustamine Unix- ja Linux-tüüpi süsteemides)
  • CR (13) — carriage return (kasutatakse koos LF-iga Windowsis; endise Mac OS Classic puhul eraldi)
  • DEL (127) — kustutuse märk

Tänapäeval ei kasutata enamikku juhtmärke nende algsel riistvaralisel otstarbel, kuid mõned (näiteks LF ja CR) on jäänud olulisteks teksti- ja liideseformaatide puhul.

7-bitine vs 8-bitine esitlus ja pariteedibitt

Oluline täpsustus: ASCII on algselt 7-bitine standard — see tähendab, et selles on defineeritud 128 väärtust (0–127). Kuid varajastel andmeühendustel ja serial-liinidel oli sageli vaja lisada veel üks bitt veakontrolli (pariteedibitt) või selleks, et mahutada laiendatud tähestikke. Seetõttu salvestati ja edastati ASCII-märke tihti 8-bitisena (bait), kusjuures ühe bitti kasutati pariteedi või muude laienduste jaoks. See on põhjus, miks mõnikord räägitakse ASCII-st 8-bitisena, kuid formaalselt on ASCII 7-bitine kood.

ASCII-failid ja "tavaline tekst"

Kui öeldakse, et fail on ASCII-formaadis, tähendab see tavaliselt, et fail koosneb loetavast tekstist, mis kasutab ASCII-märke. Selliseid faile saab avada peaaegu igas tekstiredaktoris ilma spetsiaalse dekodeerimiseta. ASCII-faile kasutatakse laialdaselt logifailide, lähtekoodide, konfiguratsioonifailide ja paljude protokollide puhul.

Piirangud ja pärand

ASCII piirangud on selged: see toetab ainult inglise keele põhitähti ja vähest hulka märke, mistõttu ei sobi paljude keelte, erimärkide ja aktsentide jaoks. Selle piirangu tõttu tekkisid 8-bitised laiendatud kodeeringud (nt ISO 8859-seeriad, Windows-1252) ning lõpuks Unicode, mis suudab esitada miljoneid märke ja asendas enamiku varasemaid kodeeringuid tänapäeva tarkvaras.

Vaatamata piirangutele on ASCII mõjutanud tugevalt kaasaegset arvutiteadust ja Interneti protokolle — paljud tekstipõhised protokollid, programmeerimiskeeled ja failiformaadid tuginevad siiani ASCII-sümbolite alamhulgale. ASCII-järgne areng ja ühtsus võimaldasid lihtsa, ühilduva tekstitöötluse laialdase leviku.

Kokkuvõte

ASCII on lihtne ja ajalooliselt tähtis märgitabel, mis määratleb 128 märki — trükitavad sümbolid ja juhtmärgid — ning oli aluseks paljudele hilisematele kodeeringutele. Kuigi tänapäeva rahvusvahelised standardid nagu Unicode on seda osaliselt asendanud, on ASCII endiselt aluseks paljudele süsteemidele ja failitüüpidele ning püsib tähtsana infosüsteemide ühilduvuse seisukohalt.