TI:WTBD/ASCII

Transkrypt

TI:WTBD/ASCII
TI:WTBD/ASCII
American Standard Code for Information Interchange
Kodowanie dla podstawowego alfabetu łacińskiego (+ cyfry i podstawowe znaki przestankowe),
oparte na zasadzie 1 znak ↔ 1 bajt (8 bitów). Wystarczające dla zapisu tekstów w j. angielskim, ale
chyba w żadnym innym. Inaczej: US-ASCII. W 1968 prezydent L. Johnson zarządził, że sprzęt
kupowany przez rząd federalny musi wspierać kodowanie ASCII, co prawdopodobnie
przypieczętowało sukces tego standardu :D
Ustaliło się dość dawno (lata 1960te) jako podstawowy standard kodowania tekstu w branży
komputerowej. Istniały i nawet do tej pory pokutują standardy konkurencyjne, zupełnie odmienne
(EBCDIC, ..?).
Podstawowe ASCII wykorzystuje jedyne bajty o najstarszym bicie wyzerowanym, i to nie wszystkie.
Tablicę kodów mamy zwykle pod ręką (man ascii).
0 .. 31: tzw. kody kontrolne, tradycyjnie stosowane do sterowania przepływem na terminalach,
liniach szeregowych itp. Co ciekawsze:
0 (NUL) nie ma prawa w zasadzie występować w strumieniu tekstowym (uwaga:
UTF-16), w szczególności -- w nazwach plików (Posix), znacznik końca napisu (łańcucha
znakowego) w języku C
7 .. 13: [BEL, BS, HT, LF, VT, FF, CR] czyli ['\a', '\b', '\t', '\n', '\v', '\f', '\r'] p.
TI:WTBD/KodySpecjalne
27: ESC
32 .. 47: znaki od spacji do '/'
48 .. 57: cyfry dziesiętne
58 .. 64: jeszcze trochę znaków
65 .. 90: wielkie litery
91 .. 96: jeszcze trochę znaków
97 .. 122: małe litery
123 .. 126: jeszcze kilka znaków
127: kod DEL
Zbyt wiele logiki może w tym nie ma, ale jednak:
wszystkie cyfry stoją przed wszystkimi literami, i to w porządku numerycznym
wszystkie wielkie litery stoją przed wszystkimi małymi, w porządku alfabetycznym
wszystkie małe litery stoją w porządku alfabetycznym
i każda z tych grup zajmuje ciągły przedział wartości kodów. Wiele tradycyjnych narzędzi posługuje
się sortowaniem "leksykograficznym" wg. wartości kodów ASCII, w oparciu o te własności. Co jest w
sumie zadowalające, jeśli posługujemy się wyłącznie j. angielskim.
(kod małej litery) = (kod wielkiej litery) + 32; 32 to binarnie 100000; kody A .. Z to 1000001 ..
1011010; stąd mała litera różni się od wielkiej o ustawienie jednego bitu.
Prawidłowy zapis języków innych niż angielski wymaga co najmniej 8-bitowych rozszerzeń ASCII, lub
Unicode.