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.[1]

Tlačiteľné znaky sady ASCII, podoba od revízie 1967 (95 znakov s kódmi 32 – 126)

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.[2] 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).[3]

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

Dejiny upraviť

 
Ď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.[5] Vývoj začal v roku 1960 a prvá verzia bola publikovaná v roku 1963.[2] Pri jej vzniku sa vychádzalo z Baudotovho kódu a jeho variantu, Murrayovho kódu.[5] 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.[6]

EASCII upraviť

 
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.[5] 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 upraviť

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

Súčasná podoba, v zmysle štandardov ASCII-1977 (ANSI X3.4-1977), ASCII-1986 (ANSI X3.4-1986),[7] ISO/IEC 646:1991 (ISO 646 US),[8] ITU-T T.50 (1992), ISO-IR 006.[9][6]

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

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

  1. ASCII [online]. Encyclopædia Britannica, [cit. 2020-06-12]. Dostupné online.
  2. a b 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. a b c HAUSER, Marianne. HTML a CSS: velká kniha řešení. Brno : Computer Press, 2006. ISBN 80-251-1117-2.
  6. a b Aivosto. 7-bit character sets [online]. aivosto.com, [cit. 2020-06-13]. Dostupné online.
  7. 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.
  8. Zeichensatz nach ISO 646 (ASCII) [online]. Roland Unger, [cit. 2020-06-13]. Dostupné online. Archivované 2016-03-03 z originálu.
  9. ASCII Graphic character set [online]. itscj.ipsj.or.jp, 1975, [cit. 2020-06-13]. Dostupné online. Archivované 2016-10-07 z originálu.

Literatúra upraviť

Pozri aj upraviť

Iné projekty upraviť

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

Externé odkazy upraviť