background image

2010-05-17

1

Kody znakowe

Zagadnienia

Kody alfanumeryczne

Znaki sterujące

Kod ASCII

Unicode

Postać spakowana liczb BCD

Postać rozpakowana liczb BCD 

background image

2010-05-17

2

Kod Morse’a

Kod telegraficzny nr 2 

(kod Baudota) 

background image

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

NUL

SOH

STX

ETX

EOT

ENQ

ACK

BEL

8

BS

HT

LF

VT

FF

CR

SO

SI

16

DLE

DC1

DC2

DC3

DC4

NAK

SYN

ETB

24

CAN

EM

SUB

ESC

FS

GS

RS

US

32

SP

!

"

#

$

%

&

'

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

{

|

}

~

DEL

background image

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

NUL

SOH

STX

ETX

EOT

ENQ

ACK

BEL

BS

HT

LF

VT

FF

CR

SO

SI

1

DLE

DC1

DC2

DC3

DC4

NAK

SYN

ETB

CAN

EM

SUB

ESC

FS

GS

RS

US

2

SP

!

"

#

$

%

&

'

(

)

*

+

,

-

.

/

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

{

|

}

~

DEL

Kod ASCII 

(wartości szesnastkowe)

0 / 8

1 / 9

2 / A

3 / B

4 / C

5 / D

6 / E

7 / F

0

NUL

SOH

STX

ETX

EOT

ENQ

ACK

BEL

BS

HT

LF

VT

FF

CR

SO

SI

1

DLE

DC1

DC2

DC3

DC4

NAK

SYN

ETB

CAN

EM

SUB

ESC

FS

GS

RS

US

2

SP

!

"

#

$

%

&

'

(

)

*

+

,

-

.

/

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

{

|

}

~

DEL

4D = 01001101

background image

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

background image

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)

background image

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)

background image

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

background image

2010-05-17

9

Inne alfabety w kodzie ASCII ISO/IEC 646

ISO/IEC 646 

– odmiany narodowe

background image

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

background image

2010-05-17

11

Kodowanie ISO-8859-2

Windows - 1250

background image

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)

background image

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

background image

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

background image

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