Tlačiteľné znaky sady ASCII, podoba od revízie 1967 (95 znakov s kódmi 32 – 126)
**ASCII** (z angl. ***American Standard Code for Information Interchange***, 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 a dátové prenosy (resp. 8-bitové s paritným bitom), 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 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
------

Ď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 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

8-bitová EASCII znaková sada CP437 počítačov IBM PC
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á (angl. *extended ASCII*), 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

*Bližšie informácie v článkoch: Unicode a UTF-8*
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ý `Alt`+`E`) 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 | SOH | Start of Header |
| 2 | 02 | STX | Start of Text |
| 3 | 03 | ETX | End of Text |
| 4 | 04 | EOT | End of Transmission |
| 5 | 05 | ENQ | Enquiry |
| 6 | 06 | ACK | Acknowledge |
| 7 | 07 | BEL | Bell |
| 8 | 08 | BS | Backspace |
| 9 | 09 | HT | Horizontal Tab |
| 10 | 0a | LF | Line Feed |
| 11 | 0b | VT | Vertical Tab |
| 12 | 0c | FF | Form Feed |
| 13 | 0d | CR | Carriage Return |
| 14 | 0e | SO | Shift Out |
| 15 | 0f | SI | Shift In |
| 16 | 10 | DLE | Data Link Escape |
| 17 | 11 | DC1 | Device Control (XOn) |
| 18 | 12 | DC2 | Device Control |
| 19 | 13 | DC3 | Device Control (XOff) |
| 20 | 14 | DC4 | Device Control |
| 21 | 15 | NAK | Negative Acknowledge |
| 22 | 16 | SYN | Synchronous Idle |
| 23 | 17 | ETB | End of Transmission Block |
| 24 | 18 | CAN | Cancel |
| 25 | 19 | EM | End of Medium |
| 26 | 1a | SUB | Substitute |
| 27 | 1b | ESC | Escape |
| 28 | 1c | FS | File Separator |
| 29 | 1d | GS | Group Separator |
| 30 | 1e | RS | Record Separator |
| 31 | 1f | US | Unit 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
----------

1. ↑   *ASCII* [online]. Encyclopædia Britannica, [cit. 2020-06-12]. Dostupné online.
2. 1 2  BRANDEL, Mary. *1963: The debut of ASCII* [online]. CNN, 1999-07-06, [cit. 2020-06-12]. Dostupné online.
3. ↑   *RFC 3629 : UTF-8, a transformation format of ISO 10646* [online]. tools.ietf.org, [cit. 2020-06-13]. Dostupné online.
4. ↑   *Character Sets* [online]. iana.org, [cit. 2020-06-12]. Dostupné online.
5. 1 2 3  HAUSER, Marianne. *HTML a CSS: velká kniha řešení*. Brno : Computer Press, 2006. ISBN 80-251-1117-2.
6. ↑   *ANSI INCITS 4-1986 (R2002) : (formerly ANSI X3.4-1986 (R1997)) : Coded Character Sets - 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII)* [online]. American National Standards Institute, [cit. 2020-06-13]. Dostupné online.
7. ↑   *Zeichensatz nach ISO 646 (ASCII)* [online]. Roland Unger, [cit. 2020-06-13]. Dostupné online. Archivované 2016-03-03 z originálu.
8. ↑   *ASCII Graphic character set* [online]. itscj.ipsj.or.jp, 1975, [cit. 2020-06-13]. Dostupné online. Archivované 2016-10-07 z originálu.
9. ↑  Aivosto. *7-bit character sets* [online]. aivosto.com, [cit. 2020-06-13]. Dostupné online.

Literatúra
----------

* MACKENZIE, Charles E.. *Coded Character Sets, History and Development*. [s.l.] : Addison-Wesley Publishing Company, 1980. 513 s. Dostupné online. ISBN 978-0-201-14460-4.
* FISCHER, Eric. *The Evolution of Character Codes, 1874-1968* [online]. 2000, [cit. 2020-06-12]. Dostupné online. Archivované 2012-02-13 z originálu.

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
------------

Commons
* Spolupracuj na Commons Commons ponúka multimediálne súbory na tému **ASCII**

Externé odkazy
--------------

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