2010-05-17
1
Kody znakowe
Zagadnienia
Kody alfanumeryczne
Znaki sterujące
Kod ASCII
Unicode
Postać spakowana liczb BCD
Postać rozpakowana liczb BCD
2010-05-17
2
Kod Morse’a
Kod telegraficzny nr 2
(kod Baudota)
2010-05-17
3
Kod ASCII
American Standard Code for Information Interchange
Kod ASCII
(wartości dziesiętne)
0
1
2
3
4
5
6
7
0
8
16
24
32
!
"
#
$
%
&
'
40
(
)
*
+
,
-
.
/
48
0
1
2
3
4
5
6
7
56
8
9
:
;
<
=
>
?
64
@
A
B
C
D
E
F
G
72
H
I
J
K
L
M
N
O
80
P
Q
R
S
T
U
V
W
88
X
Y
Z
[
\
]
^
_
96
`
a
b
c
d
e
f
g
104
h
i
j
k
l
m
n
o
112
p
q
r
s
t
u
v
w
120
x
y
z
{
|
}
~
2010-05-17
4
Kod ASCII
(wartości szesnastkowe)
0 / 8
1 / 9
2 / A
3 / B
4 / C
5 / D
6 / E
7 / F
0
1
2
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
3
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
4
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
5
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
6
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
7
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
Kod ASCII
(wartości szesnastkowe)
0 / 8
1 / 9
2 / A
3 / B
4 / C
5 / D
6 / E
7 / F
0
1
2
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
3
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
4
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
5
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
6
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
7
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
4D = 01001101
2010-05-17
5
Własności kodu ASCII
Litery
• Wartości kodów rosną w porządku alfabetycznym
41 42 43 44 . . .
61 62 63 64 . . . (hex)
A B C D . . .
a b c d . . .
• Małe i wielkie litery
Kod_małej_litery = Kod_wielkiej_litery + 20 (hex)
0110 1110 0110 1111 0110 0011 0110 1011 0110 0001
n o c k a
Własności kodu ASCII
Litery
• Wartości kodów rosną w porządku alfabetycznym
41 42 43 44 . . .
61 62 63 64 . . . (hex)
A B C D . . .
a b c d . . .
• Małe i wielkie litery
Kod_małej_litery = Kod_wielkiej_litery + 20 (hex)
01
1
0 1110 01
1
0 1111 01
1
0 0011 01
1
0 1011 01
1
0 0001
n o c k a
2010-05-17
6
Własności kodu ASCII
Litery
• Wartości kodów rosną w porządku alfabetycznym
41 42 43 44 . . .
61 62 63 64 . . . (hex)
A B C D . . .
a b c d . . .
• Małe i wielkie litery
Kod_małej_litery = Kod_wielkiej_litery + 20 (hex)
01
0
0 1110 01
0
0 1111 01
0
0 0011 01
0
0 1011 01
0
0 0001
N O C K A
Własności kodu ASCII
Cyfry
0 0 1 1 * * * *
kod BCD cyfry
Np.
„2” ma kod
0011 0010 (32h)
„7” ma kod
0011 0111 (37h)
„9” ma kod
0011 1001 (39h)
2010-05-17
7
„Pakowanie” i „rozpakowanie” kodu ASCII
Liczba 9652 w kodzie BCD zajmuje 2 bajty: 96 52 (hex)
Tekst „9652” w kodzie ASCII zajmuje 4 bajty: 39 36 35 32 (hex)
Kod ASCII
(znaki funkcyjne czyli sterujące)
2010-05-17
8
Kod ASCII
(pozostałe znaki funkcyjne)
Zastosowanie znaków sterujących
Np. Transmisja znakowa wg
protokołu BISYNC
(Binary Synchronous Transmission)
2010-05-17
9
Inne alfabety w kodzie ASCII - ISO/IEC 646
ISO/IEC 646
– odmiany narodowe
2010-05-17
10
Strony kodowe
Tablica kodowa zawierająca alfabet łaciński
(tzw. zbiór podstawowy G0)
jest identyczna z ASCII i koduje znaki w postaci
0 b
7
b
6
b
5
b
4
b
3
b
2
b
1
Znaki innych alfabetów (zbiory dodatkowe),
np.arabskiego, cyrylicy, hebrajskiego i dodatkowe łacińskie
są kodowane w postaci
1 b
7
b
6
b
5
b
4
b
3
b
2
b
1
Przejście do odpowiedniej tablicy kodowej następuje
przez
sekwencję rozszerzającą (escape sequence)
zaczynającą się znakiem ESC .
Powstało wiele różnych rozszerzeń ASCII wykorzystujących
ósmy bit, nazywanych stronami kodowymi
Strony kodowe ISO-8859
2010-05-17
11
Kodowanie ISO-8859-2
Windows - 1250
2010-05-17
12
Problem kodowania polskich znaków
Unicode
unique, universal, and uniform character encoding
Kody dla wszystkich znanych systemów pisma (alfabetów)
Znak może być
literą (np. łacińską, grecką, hebrajską, arabską,)
znakiem sylaby
(np. w japońskim piśmie Hiragana)
ideogramem
(np. w piśmie chińskim Han,
tzw. CJK - Chinese, Japanese, Korean)
symbolem (np. technicznym, muzycznym,
znakiem Braille’a)
2010-05-17
13
Każdy znak jest określony przez
unikatowy numer (code point) U+0000 ... U+10FFFF
1 114 112 numerów
unikatową nazwę
Unicode
(Unikod)
Unicode nie definiuje postaci graficznej znaku (glyph)
U+004B
LATIN CAPITAL LETTER
K
U+005B
LEFT SQUARE BRACKET
[
inne, np.:
U+05D0
HEBREW LETTER ALEF
U+0663
ARABIC-INDIC DIGIT THREE
U+264F
SCORPIUS
Unicode
Kody od U+0000 do U+007F odpowiadają kodowi ASCII
2010-05-17
14
Unicode
– polskie znaki
Unicode Consortium
Organizacja “non-profit”, zał. w 1991
.
Unicode Standard, ver. 5.1.0. (
kwiecień 2008)
zgodny ze standardem ISO/IEC 10646
96 447
znaków z kilkudziesięciu alfabetów
ok. 6 300 kodów nie wykorzystanych
w początkowym obszarze kodowym 64k znaków
(basic multilingual plane)
2010-05-17
15
Formaty kodowania
(UTF - Unicode Transformation Format)
Są 3 formaty kodowania (dla każdego znaku):
8 bitów (UTF-8),
16 bitów (UTF-16)
32 bity (UTF-32)
Przykład odwzorowania numeru kodowego w UTF-8
Tu wszystkie
znaki ASCII