ASCII

ASCII (z , doslovne „americký štandardný kód pre výmenu informácií“) je kódovací systém znakov anglického variantu latinskej abecedy, číslic, netlačiteľných znakov, iných špeciálnych znakov a riadiacich kódov slúžiacich k riadeniu dátového prenosu, k formátovaniu tlače, prípadne k iným účelom.

Väčšina v súčasnosti používaných znakových sád, vrátane medzinárodného štandardu Unicode, vychádza zo znakovej sady ASCII. Naviac, kódovanie UTF-8, široko využívaná Unicode reprezentácia s variabilnou šírkou znaku, zachováva spätnú kompatibilitu s ASCII do tej miery, že všetky bajty s nenastaveným najvyšším bitom (tzn. s hodnotami 0 až 127) reprezentujú priamo príslušný ASCII znak resp. kód. Všetky ostatné Unicode znaky sú zase v UTF-8 reprezentované výhradne postupnosťami bajtov s nastaveným najvyšším bitom (tzn. s hodnotami 128 až 255).

Internetová štandardizačná organizácia IANA preferuje používanie skratky US-ASCII.

Dejiny 

Znaková sada ASCII sa vyvinula zo znakov používaných v ďalekopise, resp. z kódov, ktoré boli pôvodne určené pre obsluhu periférnych zariadení ako napr. tlačiarne. Vývoj začal v roku 1960 a ukončený bol v roku 1963. Avšak až verzia z roku 1967 bola identická s dnešnou. Pri jej vzniku sa vychádzalo z Baudotovho kódu a jeho variantu, Murrayovho kódu.

EASCII 

Sada najprv obsahovala 128 znakov (od 0 po 127), zapisovala sa pomocou 7 bitov od 0000000 po 1111111. Avšak táto sada 128 znakov a kódov nepostačovala a bola preto rozšírená na 256 znakov so zápisom na 8 bitov. 8-bitová znaková sada ASCII sa niekedy zvykne označovať ako rozšírená (), alebo EASCII. Prvé verzie vznikali v druhej polovici 70. rokov 20. storočia a celkovo vznikli viac ako dve stovky verzií EASCII, kódových stránok pre MS-DOS a prvé verzie MS Windows. V prvej polovici tabuľky (znaky od 0 po 127) sú vždy všetky EASCII zhodné s pôvodnou ASCII, rozdiely v každej znakovej sade sa nachádzali iba v druhej polovici tabuľky znakov od 128 po 255. Medzi najznámejšie a u nás používané patrí znaková sada Latin 2, kódová stránka Windows 1250, ktorá vo svojej druhej polovici (znaky od 128 po 255) obsahuje latinské písmená s diakritickými znamienkami typické pre stredoeurópske jazyky. V 80. rokoch 20. storočia to bola napr. na území Česko-Slovenska pod MS DOS rozšírená znaková sada Kamenických, založená na sade CP437 počítačov IBM PC. Celkovo existuje viac ako dve stovky kódových stránok EASCII pre všetky latinské abecedy, cyrilické abecedy (s azbukou) a mnohé ďalšie abecedy či potreby.

EASCII tvorí od druhej polovice 70. rokov 20. storočia štandardizovaný, rozšírený a všeobecne uznávaný základ ukladania informácii v elektronickej podobe, pretože každý 1 bajt má 8 bitov (t.j. binárne od 00000000 po 11111111) a teda dekadicky od 000 po 255, resp. hexadecimálne od 00 po FF. Ku koncu 50. rokov a v 60. rokoch 20. storočia nebolo samozrejmé aby jeden bajt (znak či kód) bol kódovaný ôsmimi bitmi. Existovali totiž aj 4-bitové či 6-bitové kódovania a aj pojem bajt (či už znak alebo kód) bol veľmi úzko spätý so samotným hardvérom a jeho princípom fungovania, napr. keď boli na magnetickej páske uložené informácie z diernych štítkov či diernych pások.

Dnes existuje teda 28 = 256 „druhov“ bajtov: hexadecimálne od 00 po FF. Grafická interpretácia znakov, ktorú reprezentujú bajty s poradovými číslami od 128 po 255 (hexadecimálne od 80 po FF) sa líši podľa aktuálne používanej znakovej sady.

Unicode 

Vzhľadom na veľmi veľké množstvo znakových sád, ktoré sa líšili v jednotlivých krajinách vo svojej druhej polovici hexadecimálne od 80 po FF, existoval tlak na vývoj takého štandardu, ktorý by bol platný univerzálne a na celom svete. Tým štandardom sa stal Unicode. Jedným z najzásadnejších rozdielov medzi ACSII (či aj EASCII) a Unicode je ten, že znaky v Unicode (aktuálne ich už obsahuje viac ako sto tridsať tisíc) sú kódované viac ako jedným bajtom, keď môžu byť kódované dvoma a troma bajtami (dohodou nie jedným bajtom) a to hexadecimálne od U-00 00 až po U-10 FF FF.

Pre kódovanie v Unicode existuje niekoľko spôsobov, jeden z nich je napr. veľmi rozšírený UTF-8. Aj keď názov môže byť zavádzajúci že sa jedná o 8-bitové kódovanie iba pre 256 znakov (00 až FF), v skutočnosti UTF-8 dovoľuje Unicode kódovať s premenlivou dĺžkou jedným až štyrmi bajtami (t.j. 8 až 32 bitmi) s istým prebytkom bitov, ktorý sa ukazuje ako výhodný pre ASCII, keďže Unicode nekóduje nič jedným bajtom (ani ASCII od 0 po 127, resp. hexadecimálne od 00 po 7F), minimum sú dva bajty. V Unicode tomu jednoducho predchádzajú nuly U-0000 až U-007F a aj znak zavináča (dekadicky 64, resp. hexadecimálne 40) v Unicode zaberá dohodou dva bajty (hexadecimálne 00 40), zatiaľčo v UTF-8 iba jeden bajt (hexadecimálne 40). Žatiaľ čo Unicode je maximálne troj-bajtový a UTF-8 maximálne štvor-bajtový, táto výhoda úspory bitov UTF-8 sa stráca za bariérou ACSII (127, hexadecimálne 7F), keďže napr. znak eura zaberá v Unicode dva bajty hexadecimálne 20 AC, v UTF-8 kódovaní Unicodu až tri bajty E2 82 AC. Úspora UTF-8 nad Unicode však prevažuje, keďže väčšina písaných znakov je ACSII (od 0 po 127, resp. hexadecimálne od 00 po 7F). O uvedených faktoch sa možno presvedčiť aj jednoduchým uložením znaku eura (pravý +) v poznámkovom bloku MS Windows s ukladaním do príslušného kódovania, následne skúmaním ich veľkosti či podrobnej hexadecimálnej podoby. Takto uložené súbory majú však aj svoju niekoľko-bajtovú hlavičku (tá v prípade Unicode môže napr. definovať opačné poradie bajtov).

Tabuľka ASCII kódov 
Súčasná podoba, v zmysle štandardov ASCII-1977 (ANSI X3.4-1977), ASCII-1986 (ANSI X3.4-1986), ISO/IEC 646:1991 (ISO 646 US), ITU-T T.50 (1992), ISO-IR 006.

Vkladanie znakov pomocou ASCII kódov 
Na počítačovej klávesnici pripojenej k počítaču so spusteným Microsoft Windows je možné vložiť ľubovoľný ASCII znak stlačením ľavého tlačidla Alt a cifier kódu želného znaku na numerickej klávesnici. Napríklad ľavý Alt + 64 vloží @. Táto metóda je univerzálna bez ohľadu na použitie znakovej sady pre EASCII.

Referencie

Literatúra

Pozri aj 
 ASCII umenie
 Unicode

Iné projekty

Externé odkazy 
 Prehľad ASCII znakov
 7-bit character sets (obsahuje prehľad revízií ASCII)

Štandardy
Kódovanie znakov
Počítačová terminológia
Vzniklo v 1963