ASCII

Kodowanie danych

Alfabet Morse’a był pierwszym kodem wykorzystywanym w komunikacji na duże odległości. Wymyślił go Samuel F.B. Morse w roku 1844. Kod ten składa się z kresek i kropek (jest to swego rodzaju kod binarny). Używano go, by komunikować się sprawniej niż przy pomocy Pony Express – ówczesnej amerykańskiej poczty. Telegrafista, który musiał dobrze znać kod, był wówczas ważną osobistością.

Tworzono różne inne kody, m. in. kod Émile’a Baudota (znany jako kod Baudota lub Kod Murraya).

10 marca 1876 dr Alexander Graham Bell zakończył prace nad telefonem – rewolucyjnym wynalazkiem, który przy pomocy przewodów mógł przenosić sygnały dźwiękowe. Ciekawostką jest fakt, że Izba Reprezentantów całkiem niedawno uznała, że wynalazcą telefonu był Antonio Meucci. Meucci złożył wniosek patentowy w 1871 r., ale od 1874 nie był już w stanie go przedłużać.

Linie telegraficzne umożliwiły powstanie dalekopisów – urządzeń, które mogły kodować i odkodowywać znaki przy użyciu kodu Baudota (znaki były kodowane przy użyciu 5 bitów naraz, przez co można było użyć maks. 32 znaków).

W latach 60. przyjęto kod ASCII (czyli American Standard Code for Information Interchange) jako nowy standard. Z ASCII można było kodować znaki przy użyciu 8 bitów – stąd możliwe było użycie 256 znaków.

Czym jest kod ASCII?

Pamięć komputera zapisuje wszystkie dane w formie cyfrowej. Nie da się przechowywać samych znaków. Każdy znak ma swój odpowiednik w kodzie cyfrowym: to właśnie nazywamy kodem ASCII (tzn. American Standard Code for Information Interchange). Podstawowy kod ASCII przedstawiał znaki jako 7 bitów (dla 128 możliwych znaków, od 0 do 127).

  • Kody od 0 do 31 nie są przypisane do znaków. Nazywamy je znakami sterującymi, gdyż używa się ich np. do takich działań:
    • Powrót karetki (CR).
    • Bell (Syg. dźwiękowy) (BEL).
  • Kody 65-90 odpowiadają dużym literom.
  • Kody 97-122 odpowiadają małym literom.

(Zmiana 6 bitu przełącza duże litery na małe; odpowiada to dodawaniu 32 do kodu ASCII w bazie w systemie dziesiętnym).

Lista znaków ASCII

Znak Kod ASCII Kod szesnastkowy
NUL (Null – zero) 0 00
SOH (Początek nagłówka) 1 01
STX (Początek tekstu) 2 02
ETX (Koniec tekstu) 3 03
EOT (Koniec transmisji) 4 04
ENQ (Nawiązanie łączności) 5 05
ACK (Potwierdzenie) 6 06
BEL (Bell – syg. dźwiękowy) 7 07
BS (Backspace – usunięcie znaku) 8 08
TAB (Tabulacja pozioma) 9 09
LF (Line Feed – kodowanie końca linii) 10 0A
VT (Tabulacja pionowa) 11 0B
FF (Form feed – przejście na następną stronę) 12 0C
CR (Powrót karetki) 13 0D
SO (Shift out – Wył. specjalnego zestawu znaków) 14 0E
SI (Shift in – Wł. specjalnego zestawu znaków) 15 0F
DLE (Data link escape – pominięcie znaków sterujących) 16 10
DC1 (Sterownik urządzenia 1) 17 11
DC2 (Sterownik urz. 2) 18 12
DC3 (Sterownik urz. 3) 19 13
DC4 ( Sterownik urz. 4) 20 14
NAK (Negatywne potwierdzenie = błąd) 21 15
SYN (Synchronizacja w stanie bezczynności) 22 16
ETB (Koniec bloku transmisji) 23 17
CAN (Anulowanie) 24 18
EM (Koniec nośnika zapisu) 25 19
SUB (Substitute – zastąpienie) 26 1A
ESC (Escape – przełączenie) 27 1B
FS (Separator plików) 28 1C
GS (Separator grupy) 29 1D
RS (Separator rekordów) 30 1E
US (Separator jednostki) 31 1F
SP (Spacja) 32 20
! 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
0 48 30
1 49 31
2 50 32
3 51 33
4 52 34
5 53 35
6 54 36
7 55 37
8 56 38
9 57 39
: 58 3A
; 59 3B
< 60 3C
= 61 3D
> 62 3E
? 63 3F
@ 64 40
A 65 41
B 66 42
C 67 43
D 68 44
E 69 45
F 70 46
G 71 47
H 72 48
I 73 49
J 74 4A
K 75 4B
L 76 4C
M 77 4D
N 78 4E
O 79 4F
P 80 50
Q 81 51
R 82 52
S 83 53
T 84 54
U 85 55
V 86 56
W 87 57
X 88 58
Y 89 59
Z 90 5A
[ 91 5B
\ 92 5C
] 93 5D
^ 94 5E
_ 95 5F
' 96 60
a 97 61
b 98 62
c 99 63
d 100 64
e 101 65
f 102 66
g 103 67
h 104 68
i 105 69
j 106 6A
k 107 6B
l 108 6C
m 109 6D
n 110 6E
o 111 6F
p 112 70
q 113 71
r 114 72
s 115 73
t 116 74
u 117 75
v 118 76
w 119 77
x 120 78
y 121 79
z 122 7A
{ 123 7B
124 7C
} 125 7D
~ 126 7E
przycisk Delete 127 7F

Rozszerzona lista znaków ASCII

Kod ASCII został opracowany na bazie języka angielskiego. Nie posiada znaków akcentowanych i innych znaków diakrytycznych. Aby zakodować taki znak potrzebny jest inny system kodujący. Kod ASCII został rozszerzony do 8 bitów (1 bajt), aby dało się zakodować więcej znaków (tzw. Rozszerzony kod ASCII).
Ten kod przypisuje wartości od 0 do 255 (zakodowane jako 8 bitów, czyli 1 bajt) małym i dużym literom, cyfrom, znakom interpunkcyjnym i innym symbolom (w tym znakom akcentowanym w kodzie iso-latin1).

Rozszerzony kod ASCII nie jest ustandaryzowany i różni się w zależności od platformy.


Dwa najpopularniejsze zestawy znaków rozszerzonego ASCII to:

  • OEM Extended ASCII Code, wbudowany w pierwsze komputery IBM:

OEM Extended ASCII

  • ANSI Extended ASCII CODE, używany przez najnowsze systemy operacyjne:

ANSI Extended ASCII

Kod EBCDIC

Kod EBCDIC (skrót od Extended Binary-Coded Decimal Interchange Code – rozszerzony dziesiętny zakodowany dwójkowo kod wymiany), opracowany przez IBM, jest wykorzystywany do kodowania znaków przy użyciu 8 bitów. Mimo iż jest szeroko wykorzystywany na komputerach IBM, nie jest zbyt udanym kodem ASCII.

Unicode

Unicode to 16-bitowy system kodowania znaków opracowany w 1991 r. Unicode może wyrażać dowolne znaki w formie 16-bitowego kodu, niezależnie od systemu operacyjnego i języka programowania.

Obejmuje niemal wszystkie współczesne alfabety (w tym arabski, ormiański, cyrylicę, grecki, hebrajski i łaciński) i jest kompatybilny z kodem ASCII.

Lista wszystkich kodów używanych w Unicode jest dostępna na stronie oficjalnej stronie Unicode.

Zdjęcie: © Signs and Symbols - Shutterstock.com

Treści, które ukazują się w serwisie CCM powstają we współpracy z ekspertami IT i pod kierownictwem Jeana-François Pillou, założyciela CCM.net. CCM to serwis o nowych technologiach - jeden z największych na świecie, dostępny w 11 językach.
Ten dokument zatytułowany "ASCII" opublikowany przez CCM (pl.ccm.net) jest udostępniany na licencji Creative Commons. Możesz kopiować i modyfikować kopie tej strony, na warunkach określonych przez licencję i wymienionych w niniejszym tekście.