background image

3 października 2012

Wojciech Kucewicz 

1

background image

3 października 2012

Wojciech Kucewicz 

2

Cyfrowy zapis 

informacji

Cyfrowy zapis 

informacji

background image

3 października 2012

Wojciech Kucewicz 

3

Bit, Bajt, Słowo

Kody liczbowe
Konwersja liczb między różnymi kodami
Kod alfanumeryczny
Kody BCD
Zapis liczb dwójkowych ze znakiem
Dodawanie liczb binarnych ze znakiem
Liczby zmiennoprzecinkowe

Bit, Bajt, Słowo

Kody liczbowe
Konwersja liczb między różnymi kodami
Kod alfanumeryczny
Kody BCD
Zapis liczb dwójkowych ze znakiem
Dodawanie liczb binarnych ze znakiem
Liczby zmiennoprzecinkowe

background image

3 października 2012

Wojciech Kucewicz 

4

Bit, Bajt, Słowo

Bit, Bajt, Słowo

background image

3 października 2012

Wojciech Kucewicz 

5

Cyfrowy zapis informacji

Cyfrowy zapis informacji

Bit 

[ang. 

bi

nary digi

t

] jest elementem zbioru 

dwuelementowego używanym do reprezentowania 

informacji. Bit może mieć wartość 1 lub 0.

1

0

0

1

1

0

0

0

Bit

MSB

– bit najbardziej znaczący

LSB

– bit najmniej znaczący

background image

3 października 2012

Wojciech Kucewicz 

6

Cyfrowy zapis informacji

Cyfrowy zapis informacji

1

0

0

1

1

0

0

0

Bajt (byte)

ciąg złożony z 8 bitów. Bajt pozwala na zapisanie 

w systemie binarnym 2

liczb (0 -255)

Byte

background image

3 października 2012

Wojciech Kucewicz 

7

Cyfrowy zapis informacji

Cyfrowy zapis informacji

Słowo (word) 

jest informacją złożoną z n bajtów. Słowo 

może zkładać się  z 8, 16, 32 lub 64 bitów.

Słowo jest traktowane przez układy komputera jako dane

do wykonywanej aktualnie operacji, bądź jako zakodowany

rozkaz.

1

0

0

1

1

0

0

0

1

0

0

1

1

0

0

0

Word

background image

3 października 2012

Wojciech Kucewicz 

8

Cyfrowy zapis informacji

Cyfrowy zapis informacji

Rozmiar słowa

Maksymalna liczba możliwa do zapisania

8 bits

255

16 bits

65535

32 bits

4 294 967 295

64 bits

18 446 744 073 709 551 615

background image

3 października 2012

Wojciech Kucewicz 

9

Kody liczbowe

Kody liczbowe

Cyfrowy zapis informacji

Cyfrowy zapis informacji

background image

3 października 2012

Wojciech Kucewicz 

10

Kody liczbowe

Kody liczbowe

Najbardziej rozpowszechnionymi kodami liczbowymi są kody 

naturalne.

Zapis liczb w kodzie naturalnym jest pozycyjny tj. każdy znak a

i

zajmuje ściśle określoną pozycję i, której przyporządkowana jest 

odpowiednia waga w

i

= p

i

, gdzie p jest podstawą kodu liczbowego.

Podstawa kodu określa ilość znaków używanych w kodzie.

background image

3 października 2012

Wojciech Kucewicz 

11

Kod dziesiętny

Kod dziesiętny

Powszechnie stosowany jest kod (system) dziesiętny. Został 

opracowany w Indiach ok. V wieku i poprzez Arabów upowszechnił się 

w Europie.

Oparty jest na dziesięciu znakach (cyfrach):

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Ilość znaków jest podstawą systemu –

p = 10

Dowolną liczbę x przedstawia się za pomocą słowa A składającego się 

z n cyfr zgodnie ze wzorem:

x = L(A) = 

aj …a

4

a

3

a

2

a

1

a

0

. a

-1

a

-2

gdzie 

a

jest jednym z używanych znaków, a indeks 

j

jest potęgą 

podstawy 

p

przez którą znak jest mnożony

background image

3 października 2012

Wojciech Kucewicz 

12

Kod dziesiętny

Kod dziesiętny

Liczba

a

j

…  a

1

a

0

. a

-1

a

-2

a

j

•p

j

+ ...+ a

1

•10

1

+ a

0

•10

0

+ a

-1

•10

-1

+ a

-2

•10

-2

Przykład:

Liczbę

4321

można zapisać jako:

4321 = 

4•10

3

+ 3•10

2

+ 2•10

1

+ 1•10

0

= 4000 + 300 + 20 + 1 = 4321

10

Oznacza kod

Przy pomocy n cyfr możemy zapisać p

liczb (od 0 do p

n

– 1)

background image

3 października 2012

Wojciech Kucewicz 

13

Kod binarny

Kod binarny

W technice cyfrowej najczęściej jest stosowany kod dwójkowy 

(binarny)

Oparty jest na dwóch znakach:

0, 1

Podstawa systemu –

p = 2

Przykład

Liczbę

1000011100001

2

można zapisać jako

1•2

12

+ 0•2

11

+ 0•2

10

+ 0•2

9

+ 0•2

8

1•2

7

1•2

6

1•2

5

+ 0•2

4

+ 0•2

3

+ 0•2

2

0•2

1

1•2

0

4096+128+64+32+1

= 4321

10

background image

3 października 2012

Wojciech Kucewicz 

14

Kod oktagonalny

Kod oktagonalny

Kod oktagonaly oparty jest na ośmiu znakach:

0, 1, 2, 3, 4, 5, 6, 7

Podstawa systemu –

p = 8

Przykład

Liczbę

10341

8

można zapisać jako

1•8

+ 0•8

3•8

2

4•8

1

1•8

0

= 4096+192+32+1= 4321

10

background image

3 października 2012

Wojciech Kucewicz 

15

Kod heksadecymalny

Kod heksadecymalny

Kod heksadecymalny oparty jest na szesnastu znakach:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Podstawa systemu –

p = 16

Przykład

Liczbę

10EA

16

można zapisać jako

1•16

+ 0•16

14•16

1

10•16

0

= 4096+224+1= 4321

10

background image

3 października 2012

Wojciech Kucewicz 

16

Kody liczbowe

Kody liczbowe

Kod dziesiętny

Kod binarny

Kod octagonalny

Kod heksadecymalny

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

background image

3 października 2012

Wojciech Kucewicz 

17

Konwersja liczb między 

różnymi kodami

Konwersja liczb między 

różnymi kodami

Cyfrowy zapis informacji

Cyfrowy zapis informacji

background image

3 października 2012

Wojciech Kucewicz 

18

Kod dziesiętny  kod binarny

Kod dziesiętny  kod binarny

Zamiana liczby całkowitej

50

10

na binarną:

50

10

= 110010

2

Dzielenie przez 

podstawę

Wynik dzielenia

Reszta

Liczba binarna

a

0

a

1

a

2

a

3

a

4

a

5

50/2 =

25

0

0

25/2 =

12

1  

1

12/2 =

6

0

0

6/2 =

3

0          

0

3/2 = 

1

1        

1

1/2 =

0

1         

1

background image

3 października 2012

Wojciech Kucewicz 

19

Mnożenie przez 

podstawę

Wynik mnożenia

Reszta

Liczba binarna

a

-1

a

-2

a-

3

Kod dziesiętny  kod binarny

Kod dziesiętny  kod binarny

Zamiana liczby ułamkowej

0.375

10

na binarną :

0.375

10

= 0.011

2

0,375 • 2 = 0

0,75

0

0,75 • 2 =

1

0,5  

1

0,5 • 2 =

1

0

1

background image

3 października 2012

Wojciech Kucewicz 

20

Kod dziesiętny  kod binarny

Kod dziesiętny  kod binarny

Zamiana liczby dziesiętnej

50.375

10

na binarną wykonuje się w 

dwóch krokach:

50.375

10

=50 + 0.375 = 110010 + 0.011 = 110010.011

2

1) Konwersja części całkowitej

2) Konwersja części ułamkowej

background image

3 października 2012

Wojciech Kucewicz 

21

Mnożenie przez 

podstawę

Wynik mnożenia

Reszta

Liczba binarna

a

-1

a

-2

a-

3

a

-4

a

-5

a-

6

Kod dziesiętny  kod binarny

Kod dziesiętny  kod binarny

Niektóre ułamki można tylko w przybliżeniu przedstawić w postaci 

binarnej

np. 0,3

:

0.3

10

= 0,010011….

2

0,3 • 2 =

0

0,6

0

0,6 • 2 =

1

0,2  

1

0,2 • 2 =

0

0,4

0

0,4 • 2 =

0

0,8

0

0,8 • 2 =

1

0,6

1

0,6 • 2 =

1

0,2

1

background image

3 października 2012

Wojciech Kucewicz 

22

Kod binarny  kod oktagonalny

Kod binarny  kod oktagonalny

Liczbę binarną należy podzielić na segment 3 elementowe poczynając 

od przecinka w obie strony a następnie każdy segment zamienić na 

liczbę oktagonalną:

110010.011

2

110 010. 011

2

6     2.

3

8

62.3

8

Liczbę oktagonalną zamieniamy na liczbę binarną postępując 

odwrotnie

110010.011

2

110 010. 011

2

6     2.

3

8

62.3

8

background image

3 października 2012

Wojciech Kucewicz 

23

Kod binarny  kod heksadecymalny

Kod binarny  kod heksadecymalny

Liczbę binarną należy podzielić na segment 4 elementowe poczynając 

od przecinka w obie strony, a następnie każdy segment zamienić na 

liczbę heksadecymalną:

110010.011

2

0011 0010. 0110

2

3     2.

6

16

32.6

16

Liczbę heksadecymalną zamieniamy na liczbę binarną postępując 

odwrotnie

110010.011

2

0011 0010. 0110

2

3     2.

6

16

32.6

16

background image

3 października 2012

Wojciech Kucewicz 

24

Kolokwium

Kolokwium

Zamień liczbę binarną 

110,011

na liczbę 

dziesiętną, oktagonalną i heksadecymalną ?

background image

3 października 2012

Wojciech Kucewicz 

25

Kod alfanumeryczny

Kod alfanumeryczny

Cyfrowy zapis informacji

Cyfrowy zapis informacji

background image

3 października 2012

Wojciech Kucewicz 

26

Kod alfanumeryczny ASCII

Kod alfanumeryczny ASCII

W komputerach musi być  jakiś sposób przedstawiania oprócz liczb 

także liter i innych symboli. Określenie alfanumeryczny jest 

stosowany do tych symboli, które zawierają także cyfry 

dziesiętne.

Sposób przyporządkowania odpowiedniego kodu symbolom 

alfanumerycznym nazywamy kodem 

ASCII

od angielskiej nazwy 

dokumentu: 

A

merican 

S

tandard 

C

ode for 

I

nformation 

I

nterchange

Kod ASCII jest kodem 7-bitowym, często 8 bit wykorzystuje się 

do kontroli parzystości lub do kodowania dodatkowych znaków o 

numerach od 128 do 255

background image

3 października 2012

Wojciech Kucewicz 

27

Kod alfanumeryczny ASCII

Kod alfanumeryczny ASCII

Character

ASCII 

(bin)

ASCII

(hex)

Decimal

Octal

A

1000001

41

65

101

B

1000010

42

66

102

C

1000011

43

67

103

K

1001011

4B

75

113

a

1100001

61

97

141

1

0110001

31

49

61

0100111

27

39

47

Znaki w kodzie ASCII są przyporządkowane liczbom, które można 

zapisać w dowolnym kodzie numerycznym.

background image

3 października 2012

Wojciech Kucewicz 

28

Kod alfanumeryczny ASCII

Kod alfanumeryczny ASCII

Przykład:  

Euro 2012

Wyrażenie

Binarnie

Octagonalnie Heksadecymalnie Decymalnie

E

01000101

105

45

69

u

01110101

165

75

117

r

01110010

162

72

114

o

01101111

157

6F

111

00100000

40

20

32

2

00110010

62

32

50

0

00110000

60

30

48

1

00110001

61

31

49

2

00110010

62

32

50

010001010111010101110010011011110010000000110010001100000011000100110010

background image

3 października 2012

Wojciech Kucewicz 

29

Transmisja informacji

Transmisja informacji

1. Dane w kodzie ASCII wprowadzane 

są z klawiatury

2. Przemieszczane są w blokach 

(bajtach) przy użyciu procesora

3. Gromadzone są w pamięci

background image

3 października 2012

Wojciech Kucewicz 

30

Kody BCD

Kody BCD

Cyfrowy zapis informacji

Cyfrowy zapis informacji

background image

3 października 2012

Wojciech Kucewicz 

31

Kod BCD 8421

Kod BCD 8421

Cyfra

Kod
BCD8421

Cyfra

Kod
BCD8421

0

0000

5

0101

1

0001

6

0110

2

0010

7

0111

3

0011

8

1000

4

0100

9

1001

W kodzie BCD (ang. Binary coded decimal) każda cyfra liczb dziesiętnej jest 

oddzielnie kodowana dwójkowo w postaci 4-bitowego słowa.

Najpopularniejszy jest kod BCD 8421 obejmujący pierwsze 10 liczb z 4-

bitowego naturalnego kodu dwójkowego.

Przykładowo liczba 369

10

będzie zakodowana następująco:

0011  0110  1001   

To nie jest liczba 0011 0110 1001 ! 

3

6

9

background image

3 października 2012

Wojciech Kucewicz 

32

Kod BCD Gray’a

Kod BCD Gray’a

Cyfra

Kod
Gray’a

Cyfra

Kod
Gray’a

0

0000

8

1100

1

0001

9

1101

2

0011

10

1111

3

0010

11

1110

4

0110

12

1010

5

0111

13

1011

6

0101

14

1001

7

0100

15

1000

Przykładem kodu BCD jest kod Gray’a.

Kod Gray’a ma taką właściwość, że jego sąsiednie słowa różnią się tylko jednym bitem

background image

3 października 2012

Wojciech Kucewicz 

33

Kod z nadmiarem 3 (XS3)

Kod z nadmiarem 3 (XS3)

Cyfra

Kod X3

Cyfra

Kod X3

0

0011

5

1000

1

0100

6

1001

2

0101

7

1010

3

0110

8

1011

4

0111

9

1100

W kodzie BCD (ang. Binary coded decimal) z nadmiarem 3 liczenie zaczyna 

się od 0011.  Nie występuje cztery 0 lub cztery 1.

Jest to kod samouzupełniający.

background image

3 października 2012

Wojciech Kucewicz 

34

Kod 7-segmentowy

Kod 7-segmentowy

Cyfra

Kod  7-segm.

abcdefg

Cyfra

Kod 7-segm.

abcdefg

0

1111110

5

1011011

1

0110000

6

1011111

2

1101101

7

1110000

3

1111001

8

1111111

4

0110011

9

1111011

Kod 7-segmentowy służy do wyświetlania cyfr na wskaźniku 7-segmentowym. 

Każda cyfra jest tworzona przez „zapalenie” odpowiednich segmentów 

wskaźnika.

a

a

b

b

c

c

d

d

g

g

f

f

e

e

a

a

b

b

c

c

d

d

g

g

f

f

e

e

background image

3 października 2012

Wojciech Kucewicz 

35

Zapis liczb dwójkowych 

ze znakiem

Zapis liczb dwójkowych 

ze znakiem

Cyfrowy zapis informacji

Cyfrowy zapis informacji

background image

3 października 2012

Wojciech Kucewicz 

36

Zapis dwójkowy ze znakiem

Zapis dwójkowy ze znakiem

W zbiorze liczb rzeczywistych istnieją liczby ujemne, które oznacza się 

znakiem minus (-).

W dwójkowym systemie liczbowym znak liczby może być wprowadzony tylko 

w postaci odrębnego 

bitu znaku

, którego wartość równa 1 reprezentuje 

umownie  znak „-”, a wartość 0 odpowiada znakowi „+”.

Istnieją trzy zasadnicze sposoby kodowania liczb dwójkowych ze znakiem:

• znak-moduł (ZM)

• znak-uzupełnienie do 1 (U 1)

• znak-uzupełnienie do 2 (U 2)

background image

3 października 2012

Wojciech Kucewicz 

37

Znak-uzupełnienie do 9 

Znak-uzupełnienie do 9 

Liczba ujemna -53

99 – 53 = 46  uzupełnienie do 9

83 – 53 = 30

83 + 46 = 

1

29  29 + 1 = 30

background image

3 października 2012

Wojciech Kucewicz 

38

Znak-uzupełnienie do 10 

Znak-uzupełnienie do 10 

Liczba ujemna -53

100 – 53 = 47  uzupełnienie do 10

83 – 53 = 30

83 + 47 = 130

X

background image

3 października 2012

Wojciech Kucewicz 

39

Zapis dwójkowy w kodzie ZM

Zapis dwójkowy w kodzie ZM

Kod znak-moduł (ang. sign-magnitude) został utworzony przez dodanie bitu na 

początku każdej liczby reprezentującego znak liczby. Przyjmuje się, że 

gdy liczba jest ujemna, to wartość tego bitu jest równa 1, a dalsze bity 

reprezentują moduł liczby. Gdy liczba jest dodatnia, to wartość tego 

bitu jest równa 0. 

Za pomocą n-bitowego słowa (uwzględniając bit znaku) można przedstawić 

liczby z zakresu:

-(2

n-1

-1) ≤ L(A) ≤ +(2

n-1

-1)

background image

3 października 2012

Wojciech Kucewicz 

40

Zapis dwójkowy ZM

Zapis dwójkowy ZM

-(2

n-1

-1) ≤ L(A) ≤ +(2

n-1

-1)

Np. za pomocą 8-bitowego słowa (1 bajtu) można przedstawiać liczby od -127 

do 127. 

Liczba  

12 

będzie miała formę 

00001100

Liczba 

-12

będzie miała formę  

10001100

W zapisie ZM liczba zero może przyjmować dwie formy:

00000000 lub 10000000

Podwójna reprezentacja O może stwarzać problemy przy realizacji 

algorytmów arytmetycznych (wada).

background image

3 października 2012

Wojciech Kucewicz 

41

Zapis dwójkowy w kodzie U 1 

Zapis dwójkowy w kodzie U 1 

W kodzie uzupełnienia do 1 (ang. 1’s complement) liczby dodatnie 

reprezentowane są jak w kodzie binarnym pod warunkiem, że najbardziej 

znaczący bit ma wartość 0. Liczby ujemne na najbardziej znaczącej pozycji 

mają 1, a pozostałe bity mają przeciwne wartości niż w przypadku liczby 

dodatniej. 

Uzupełnieniem liczby N w kodzie U1 jest liczba C:

C

U1

= (2

n

– 1)  - N

Za pomocą n-bitowego słowa (uwzględniając bit znaku) można przedstawić 

liczby z zakresu:

-(2

n-1

-1) ≤ L(A) ≤ +(2

n-1

-1)

czyli podobnie jak kodzie ZM.

background image

3 października 2012

Wojciech Kucewicz 

42

Zapis dwójkowy w kodzie U 1 

Zapis dwójkowy w kodzie U 1 

Liczba  

12 

będzie miała formę 

00001100

Liczba 

-12

będzie miała formę  

11110011

Wartość ujemną wylicza się przez odjęcie modułu liczby od 2

n

-1

-12 =

1 1 1 1 1 1 1 1

- 0 0 0 0 1 1 0 0

1 1 1 1 0 0 1 1

Liczba 0 ma także dwie reprezentacje: dodatnią – 00000000

i ujemną - 11111111

background image

3 października 2012

Wojciech Kucewicz 

43

Zapis dwójkowy w kodzie U 2 

Zapis dwójkowy w kodzie U 2 

W kodzie uzupełnienia do 2 (ang. 2’s complement) liczby dodatnie 

reprezentowane są jak w kodzie binarnym pod warunkiem, że najbardziej 

znaczący bit ma wartość 0. Liczba ujemna X  w kodzie U2 reprezentowana 

takim samym słowem jak liczba X+1 w kodzie U1. 

Uzupełnieniem liczby N w kodzie U2 jest liczba C:

C

U2

= 2

n

– N  = 

(2

n

– 1)  - N

+1 = C

U1

+ 1

Za pomocą n-bitowego słowa (uwzględniając bit znaku) można przedstawić 

liczby z zakresu:

-2

n-1

≤ L(A) ≤ +(2

n-1

-1)

background image

3 października 2012

Wojciech Kucewicz 

44

Zapis dwójkowy w kodzie U 2 

Zapis dwójkowy w kodzie U 2 

Np. za pomocą 8-bitowego słowa (1 bajtu) można przedstawiać liczby od -128 

do 127.

Liczba  

12 

będzie miała formę 

00001100

Liczba 

-12

będzie miała formę  

11110100

Wartość ujemną wylicza się przez odjęcie modułu liczby od liczby 2

n

-12 =

1 0 0 0 0 0 0 0 0
- 0 0 0 0 1 1 0 0

1 1 1 1 0 1 0 0

Liczba 0 ma tylko jedną reprezentację: 00000000

background image

3 października 2012

Wojciech Kucewicz 

45

Reprezentacja liczb w różnych 

zapisach 

Reprezentacja liczb w różnych 

zapisach 

Liczba  

dziesiętna

Liczba 

heksadecymalna

ZM

U1

U2

-128

80

-

-

1000 0000

-127

81

1111 1111

1000 0000

1000 0001

-64

C0

1100 0000

1101 11111

1100 0000

-16

F0

1001 0000

1110 1111

1111 0000

-2

FE

1000 0010

1111 1101

1111 1110

-1

FF

1000 0001

1111 1110

1111 1111

0

0

0000 0000 

1000 0000

0000 0000 

1111 1111

0000 0000

1

1

0000 0001

0000 0001

0000 0001

127

7F

0111 1111

0111 1111

0111 1111

background image

3 października 2012

Wojciech Kucewicz 

46

Dodawanie 

liczb binarnych 

ze znakiem

Dodawanie 

liczb binarnych 

ze znakiem

Cyfrowy zapis informacji

Cyfrowy zapis informacji

background image

3 października 2012

Wojciech Kucewicz 

47

Dodawanie liczb w kodzie ZM

Dodawanie liczb w kodzie ZM

Liczby A i B są dodatnie

Liczba A>0 a liczba B<0

Liczba A<0 a liczba B>0

Liczby A i B są ujemne

background image

3 października 2012

Wojciech Kucewicz 

48

Dodawanie liczb w kodzie U1

Dodawanie liczb w kodzie U1

Liczby A i B są dodatnie

Liczba A>0 a liczba B<0

Liczba A<0 a liczba B>0

Liczby A i B są ujemne

background image

3 października 2012

Wojciech Kucewicz 

49

Dodawanie liczb w kodzie U2

Dodawanie liczb w kodzie U2

Liczby A i B są dodatnie

Liczba A>0 a liczba B<0

Liczba A<0 a liczba B>0

Liczby A i B są ujemne