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, matematických symbolov, interpunkčných znamienok, netlačiteľných znakov, iných špeciálnych znakov a riadiacich kódov slúžiacich na riadenie dátového prenosu, formátovanie tlače, prípadne na iné účely.

Vznikol v 60. rokoch 20. storočia pôvodne pre 7-bitové zariadenia, dátové prenosy a záznamové médiá (resp. 8-bitové s najvyšším bitom paritným), obsahuje teda 27 = 128 kódov, z ktorých 95 zodpovedá tlačiteľným znakom ( !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~).

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 nulový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 jednotkovým najvyšším bitom (tzn. s hodnotami 128 až 255).

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

 Dejiny 
náhľad|Ďalekopis Teletype Model 33 z roku 1963, jedno z prvých zariadení, využívajúcich znakovú sadu ASCII
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 prvá verzia bola publikovaná v roku 1963. Pri jej vzniku sa vychádzalo z Baudotovho kódu a jeho variantu, Murrayovho kódu. Prvá verzia obsahovala len veľké latinské písmená, malé písmená boli doplnené vo verzii z roku 1965 a verzia z roku 1967 už bola prakticky identická s dnešnou.

 EASCII 
náhľad|8-bitová EASCII znaková sada CP437 počítačov IBM PC
náhľad|ASCII umenie
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.

 Dec Hex Znak Význam 0 00 NUL 1 01 SOHStart of Header 2 02 STXStart of Text 3 03 ETXEnd of Text 4 04 EOTEnd of Transmission 5 05 ENQEnquiry 6 06 ACKAcknowledge 7 07 BELBell 8 08 BSBackspace 9 09 HTHorizontal Tab 10 0a LFLine Feed 11 0b VTVertical Tab 12 0c FFForm Feed 13 0d CRCarriage Return 14 0e SOShift Out 15 0f SIShift In 16 10 DLEData Link Escape 17 11 DC1Device Control (XOn) 18 12 DC2Device Control 19 13 DC3Device Control (XOff) 20 14 DC4Device Control 21 15 NAKNegative Acknowledge 22 16 SYNSynchronous Idle 23 17 ETBEnd of Transmission Block 24 18 CANCancel 25 19 EMEnd of Medium 26 1a SUBSubstitute 27 1b ESCEscape 28 1c FSFile Separator 29 1d GSGroup Separator 30 1e RSRecord Separator 31 1f USUnit Separator Dec Hex Znak 32 20 SPC 33 21 ! 34 22 " 35 23 # 36 24 $ 37 25 % 38 26 & 39 27 ' 40 28 ( 41 29 ) 42 2a * 43 2b + 44 2c , 45 2d - 46 2e . 47 2f / 48 30 0 49 31 1 50 32 2 51 33 3 52 34 4 53 35 5 54 36 6 55 37 7 56 38 8 57 39 9 58 3a : 59 3b ; 60 3c < 61 3d = 62 3e > 63 3f ? Dec Hex Znak 64 40 @ 65 41 A 66 42 B 67 43 C 68 44 D 69 45 E 70 46 F 71 47 G 72 48 H 73 49 I 74 4a J 75 4b K 76 4c L 77 4d M 78 4e N 79 4f O 80 50 P 81 51 Q 82 52 R 83 53 S 84 54 T 85 55 U 86 56 V 87 57 W 88 58 X 89 59 Y 90 5a Z 91 5b [ 92 5c \ 93 5d ] 94 5e ^ 95 5f _ Dec Hex Znak 96 60 ` 97 61 a 98 62 b 99 63 c 100 64 d 101 65 e 102 66 f 103 67 g 104 68 h 105 69 i 106 6a j 107 6b k 108 6c l 109 6d m 110 6e n 111 6f o 112 70 p 113 71 q 114 72 r 115 73 s 116 74 t 117 75 u 118 76 v 119 77 w 120 78 x 121 79 y 122 7a z 123 7b { 124 7c | 125 7d } 126 7e ~ 127 7f DEL

 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
 BCD kód
 EBCDI
 Unicode
 UTF-8
 Textový súbor
 3568 ASCII (planétka pomenovaná po znakovej sade a ASCII magazíne)

 Iné projekty 

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

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