background image

24 kwietnia 2013

Wojciech Kucewicz 

1

background image

24 kwietnia 2013

Wojciech Kucewicz 

2

Cyfrowy zapis

informacji

Cyfrowy zapis

informacji

background image

24 kwietnia 2013

Wojciech Kucewicz 

3

Bit, Bajt, Słowo

Bit, Bajt, Słowo

background image

24 kwietnia 2013

Wojciech Kucewicz 

4

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

24 kwietnia 2013

Wojciech Kucewicz 

5

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)

Ciąg 4 bitów nazywamy czasami 

nible (nibble).

Byte

background image

24 kwietnia 2013

Wojciech Kucewicz 

6

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

24 kwietnia 2013

Wojciech Kucewicz 

7

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

24 kwietnia 2013

Wojciech Kucewicz 

8

Kody liczbowe

Kody liczbowe

Cyfrowy zapis informacji

Cyfrowy zapis informacji

background image

24 kwietnia 2013

Wojciech Kucewicz 

9

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

24 kwietnia 2013

Wojciech Kucewicz 

10

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

24 kwietnia 2013

Wojciech Kucewicz 

11

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

24 kwietnia 2013

Wojciech Kucewicz 

12

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

24 kwietnia 2013

Wojciech Kucewicz 

13

Kod oktagonalny

Kod oktagonalny

Kod oktagonalny 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

24 kwietnia 2013

Wojciech Kucewicz 

14

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

3

+ 0•16

14•16

1

10•16

0

= 4096+224+1= 4321

10

background image

24 kwietnia 2013

Wojciech Kucewicz 

15

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

24 kwietnia 2013

Wojciech Kucewicz 

16

Konwersja liczb między 

różnymi kodami

Konwersja liczb między 

różnymi kodami

Cyfrowy zapis informacji

Cyfrowy zapis informacji

background image

24 kwietnia 2013

Wojciech Kucewicz 

17

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

24 kwietnia 2013

Wojciech Kucewicz 

18

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

24 kwietnia 2013

Wojciech Kucewicz 

19

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

24 kwietnia 2013

Wojciech Kucewicz 

20

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

24 kwietnia 2013

Wojciech Kucewicz 

21

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

24 kwietnia 2013

Wojciech Kucewicz 

22

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

24 kwietnia 2013

Wojciech Kucewicz 

23

Kod alfanumeryczny

Kod alfanumeryczny

Cyfrowy zapis informacji

Cyfrowy zapis informacji

background image

24 kwietnia 2013

Wojciech Kucewicz 

24

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 

stosowane 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 został zaproponowany w roku 1968.

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

kontroli parzystości.

W latach 80-tych powstał standard 

ISO 8859 (Extended ASCII), 

który definiuje dodatkowe 128 znaków charakterystycznych dla 

różnych języków.

background image

24 kwietnia 2013

Wojciech Kucewicz 

25

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

24 kwietnia 2013

Wojciech Kucewicz 

26

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

24 kwietnia 2013

Wojciech Kucewicz 

27

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

24 kwietnia 2013

Wojciech Kucewicz 

28

Kod Gray’a

Kod Gray’a

Cyfrowy zapis informacji

Cyfrowy zapis informacji

background image

24 kwietnia 2013

Wojciech Kucewicz 

29

Kod BCD Gray’a

Kod BCD Gray’a

L. 

dzies.

L. bin.

B

n

…B

i

…B

0

Kod Gray’a

G

n

…G

i

…G

0

L. dzies.

L. bin

B

n

…B

i

…B

0

Kod Gray’a

G

n

…G

i

…G

0

0

0000

0000

8

1000

1100

1

0001

0001

9

1001

1101

2

0010

0011

10

1010

1111

3

0011

0010

11

1011

1110

4

0100

0110

12

1100

1010

5

0101

0111

13

1101

1011

6

0110

0101

14

1110

1001

7

0111

0100

15

1111

1000

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

jednym bitem:

G

n

= B

n

G

i

= (B

+ B

i+1

) mod. 2

background image

24 kwietnia 2013

Wojciech Kucewicz 

30

Kody BCD

Kody BCD

Cyfrowy zapis informacji

Cyfrowy zapis informacji

background image

24 kwietnia 2013

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

24 kwietnia 2013

Wojciech Kucewicz 

32

Kod Aikena

Kod Aikena

Cyfra

Kod
Aikena

Cyfra

Kod
Aikena

0

0000

5

1011

1

0001

6

1100

2

0010

7

1101

3

0011

8

1110

4

0100

9

1111

W kodzie BCD (ang. Binary coded decimal) Aikena waga bitów jest 2-4-2-1.

Uzupełnienie do 1 liczb binarnych w tym kodzie  daje uzupełnienie do 9 

odpowiednich liczb dziesiętnych. 

Np.  4  0100  U1=1011  U9=2+2+1=5

Kod z taką właściwością nazywamy kodem samouzupełniającym.

background image

24 kwietnia 2013

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

24 kwietnia 2013

Wojciech Kucewicz 

34

Kod 1 z 10

Kod 1 z 10

Cyfra

Kod  1z10

Cyfra

Kod 1z10

0

00000000001

5

0000010000

1

00000000010

6

0001000000

2

00000000100

7

0010000000

3

0000001000

8

0100000000

4

0000010000

9

1000000000

Kod 1 z 10 jest przykładem kodu k z n.  Koncepcyjnie jest to kod do 

wprowadzania cyfr kodu dziesiętnego przez 10 dziesięć wzajemnie 

wyłączalnych klawiszy.  Stosowany jest powszechnie w relacjach człowiek-

układ cyfrowy.

W technice cyfrowej używa się określenia koder, jako nazwy układu 

służącego do przetwarzania liczb w kodzie 1 z 10

background image

24 kwietnia 2013

Wojciech Kucewicz 

35

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

24 kwietnia 2013

Wojciech Kucewicz 

36

Zapis liczb dwójkowych 

ze znakiem

Zapis liczb dwójkowych 

ze znakiem

Cyfrowy zapis informacji

Cyfrowy zapis informacji

background image

24 kwietnia 2013

Wojciech Kucewicz 

37

Liczby naturalne

Liczby naturalne

0100 0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

0000

0001

0010

0011

+4

+4

+5

+5

+6

+6

+7

+7

88

99

10

10

11

11

12

12

13

13

14

14

15

15

00

+1

+1

+2

+2

+3

+3

L. dzies.

L. binarna

0

0000

1

0001

2

0010

3

0011

4

0100

5

0101

6

0110

7

0111

8

1000

9

1001

10

1010

11

1011

12

1100

13

1101

14

1110

15

1111

15 + 1 = ?

1111 + 1 = 

1

0000

1

background image

24 kwietnia 2013

Wojciech Kucewicz 

38

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. 

Bitem znaku jest zawsze bit najbardziej 

znaczący.

Jeżeli bit znaku jest równy 1, to reprezentuje umownie  znak „-”, 

natomiast gdy jest równy 0  odpowiada znakowi „+”.  

background image

24 kwietnia 2013

Wojciech Kucewicz 

39

Zapis dwójkowy ze znakiem

Zapis dwójkowy ze znakiem

L. dzies.

L. binarna

Znak

0

0000

+

1

0001

2

0010

3

0011

4

0100

5

0101

6

0110

7

0111

8

1000

-

9

1001

10

1010

11

1011

12

1100

13

1101

14

1110

15

1111

0100 0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

0000

0001

0010

0011

background image

24 kwietnia 2013

Wojciech Kucewicz 

40

Zapis dwójkowy ze znakiem

Zapis dwójkowy ze znakiem

Istnieją trzy zasadnicze sposoby kodowania liczb 

dwójkowych ze znakiem:

• znak-moduł (ZM)

• znak-uzupełnienie do 1 (U1)

• znak-uzupełnienie do 2 (U2)

background image

24 kwietnia 2013

Wojciech Kucewicz 

41

Uzupełnienie do 9 

Uzupełnienie do 9 

Odejmowanie  

83 – 53 = 83 + (-53) = 30

Liczba ujemna -53

99 – 53 = 46  uzupełnienie do 9

83 + 46 = 129  29 + 1 = 30

background image

24 kwietnia 2013

Wojciech Kucewicz 

42

Uzupełnienie do 10 

Uzupełnienie do 10 

Odejmowanie  

83 – 53 = 83 + (-53) = 30

Liczba ujemna -53

100 – 53 = 47  uzupełnienie do 10

83 + 47 = 130

X

background image

24 kwietnia 2013

Wojciech Kucewicz 

43

Zapis dwójkowy w kodzie ZM

Zapis dwójkowy w kodzie ZM

L. dzies.

L. binarna

L. całko.

0

0000

0

1

0001

1

2

0010

2

3

0011

3

4

0100

4

5

0101

5

6

0110

6

7

0111

7

8

1000

-0

9

1001

-1

10

1010

-2

11

1011

-3

12

1100

-4

13

1101

-5

14

1110

-6

15

1111

-7

0100 0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

0000

0001

0010

0011

+4

+4

+5

+5

+6

+6

+7

+7

-0

-0

-1

-1

-2

-2

-3

-3

-4

-4

-5

-5

-6

-6

-7

-7

00

+1

+1

+2

+2

+3

+3

background image

24 kwietnia 2013

Wojciech Kucewicz 

44

Zapis dwójkowy ZM

Zapis dwójkowy ZM

Zakres liczbowy zależy od ilości bitów. Dla n –bitów wynosi

-(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

24 kwietnia 2013

Wojciech Kucewicz 

45

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

np. dla liczby N = 12 w formacie 8-bitowym, liczba –12

U1

wynosi: 

1 1 1 1 1 1 1 1

- 0 0 0 0 1 1 0 0

1 1 1 1 0 0 1 1

(2

n

– 1) 

- N

U1

N

background image

24 kwietnia 2013

Wojciech Kucewicz 

46

Zapis dwójkowy w kodzie U 1 

Zapis dwójkowy w kodzie U 1 

24 kwietnia 2013

Wojciech Kucewicz 

46

L. dzies.

L. binarna

L. całko.

0

0000

0

1

0001

1

2

0010

2

3

0011

3

4

0100

4

5

0101

5

6

0110

6

7

0111

7

8

1000

-7

9

1001

-6

10

1010

-5

11

1011

-4

12

1100

-3

13

1101

-2

14

1110

-1

15

1111

-0

0100 0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

0000

0001

0010

0011

+4

+4

+5

+5

+6

+6

+7

+7

-7

-7

-6

-6

-5

-5

-4

-4

-3

-3

-2

-2

-1

-1

-0

-0

00

+1

+1

+2

+2

+3

+3

background image

24 kwietnia 2013

Wojciech Kucewicz 

47

Zapis dwójkowy w kodzie U 1 

Zapis dwójkowy w kodzie U 1 

Zakres liczbowy zależy od ilości bitów. Dla n –bitów wynosi

-(2n-1-1) ≤ L(A) ≤ +(2n-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ę  

11110011

Liczba 0 ma także dwie reprezentacje: 

dodatnią – 00000000

ujemną - 11111111

Liczbę ujemną w formacie U

1

uzyskuje się przez zanegowanie wszystkich 

bitów liczby dodatniej

background image

24 kwietnia 2013

Wojciech Kucewicz 

48

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

np. dla liczby N = 12 w formacie 8-bitowym, liczba –12

U2

wynosi: 

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

2

n

- N

U2

N

background image

24 kwietnia 2013

Wojciech Kucewicz 

49

Zapis dwójkowy w kodzie U 2 

Zapis dwójkowy w kodzie U 2 

24 kwietnia 2013

Wojciech Kucewicz 

49

L. dzies.

L. binarna

L. całko.

0

0000

0

1

0001

1

2

0010

2

3

0011

3

4

0100

4

5

0101

5

6

0110

6

7

0111

7

8

1000

-8

9

1001

-7

10

1010

-6

11

1011

-5

12

1100

-4

13

1101

-3

14

1110

-2

15

1111

-1

0100 0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

0000

0001

0010

0011

+4

+4

+5

+5

+6

+6

+7

+7

-8

-8

-7

-7

-6

-6

-5

-5

-4

-4

-3

-3

-2

-2

-1

-1

00

+1

+1

+2

+2

+3

+3

background image

24 kwietnia 2013

Wojciech Kucewicz 

50

Zapis dwójkowy w kodzie U 2 

Zapis dwójkowy w kodzie U 2 

Zakres liczbowy zależy od ilości bitów. Dla n –bitów wynosi

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

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

Liczba 0 ma reprezentację: 

00000000

Liczbę ujemną w formacie U

2

uzyskuje się przez zanegowanie wszystkich 

bitów liczby dodatniej i dodanie 1

background image

24 kwietnia 2013

Wojciech Kucewicz 

51

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

24 kwietnia 2013

Wojciech Kucewicz 

52

Dodawanie 

liczb binarnych 

ze znakiem

Dodawanie 

liczb binarnych 

ze znakiem

background image

24 kwietnia 2013

Wojciech Kucewicz 

53

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

24 kwietnia 2013

Wojciech Kucewicz 

54

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

24 kwietnia 2013

Wojciech Kucewicz 

55

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

background image

24 kwietnia 2013

Wojciech Kucewicz 

56

Liczby 

zmiennoprzecinkowe

Liczby 

zmiennoprzecinkowe

background image

24 kwietnia 2013

Wojciech Kucewicz 

57

Liczby zmiennoprzecinkowe

Liczby zmiennoprzecinkowe

Omawiane do tej pory liczby były przedstawiane w tak zwanej 

reprezentacji stałoprzecinkowej (fixed-point notation), w której 

położenie kropki jest stałe niezależne od wielkości liczb. 

Przykładowo format 8-bitowy liczby można zapisać następująco:

XXXX.XXXX

Jeżeli liczby wprowadzone do tego formatu znacznie się od siebie 

różnią  np. 

A=1234,00 i B=0,0005579

to wiąże się to z dużym błędem 

obcięcia liczby  B:

A = 1234,0000

B = 0000,0005

background image

24 kwietnia 2013

Wojciech Kucewicz 

58

Liczby zmiennoprzecinkowe

Liczby zmiennoprzecinkowe

Aby uniknąć błędów zapisu reprezentacji stałoprzecinkowej (fixed

point notation), stosuje się również zmiennoprzecinkowy zapis liczb 

(floating-poit notation)

Reprezentację zmiennoprzecinkową liczby L definiuje się jako 

złożenie dwóch słów M i W

L = M * p

W

gdzie 

słowo M (mantysa) 

– liczba ułamkowa ze znakiem

słowo W (wykładnik) – liczba 

całkowita ze znakiem

p

- podstawa kodu zastosowane do zapisu M i W

Przykładowo liczby 

A=1234,0 i B=0,0005579

można zapisać:

A = 0,1234 * 10

4

B = 0,5579 * 10

-3

background image

24 kwietnia 2013

Wojciech Kucewicz 

59

Liczby zmiennoprzecinkowe

Liczby zmiennoprzecinkowe

Istotną zaletą reprezentacji zmiennoprzecinkowej jest duży zakres 

liczb, które można w ten sposób przedstawić.

W przypadku 4 bitowej mantysy i wykładnika, można przedstawić 

liczby w zakresie:

0,0000 * 10

0000 

≤ L ≤ 0.9999 * 10

9999

Liczby binarne można przedstawiać w kodzie ZM, U1 lub U2

0,0000 * 2

0000

≤ L ≤ 0.1111 * 2

1111

background image

24 kwietnia 2013

Wojciech Kucewicz 

60

Liczby zmiennoprzecinkowe

Liczby zmiennoprzecinkowe

Dodawanie liczb zmiennoprzecinkowych wymaga najpierw wyrównania 

wykładników, a następnie właściwa operację dodawania wykonuje się 

na mantysach jak na stałoprzecinkowych liczbach ze znakiem.

W celu wyrównania wykładników mniejszy z nich odejmuje się od 

większego i mantysę związaną z tym mniejszym przesuwa się w prawo 

o liczbę pozycji równą otrzymanej różnicy. Wynik  jest sumą mantys 

z większym wykładnikiem.

Dodanie liczb binarnych A=0,1101*2

1000 

i B=0,1011*2

0101

wykonujemy 

następująco:

1000 – 0101 = 0011 

(3)

B=0,

000

1011

A+B = (0,1101000 + 0,0001011)*2

1000 

=0,1111

011

*2

1000

011

background image

24 kwietnia 2013

Wojciech Kucewicz 

61

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

24 kwietnia 2013

Wojciech Kucewicz 

62

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

24 kwietnia 2013

Wojciech Kucewicz 

63

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

24 kwietnia 2013

Wojciech Kucewicz 

64

Dodawanie 

liczb binarnych 

ze znakiem

Dodawanie 

liczb binarnych 

ze znakiem

background image

24 kwietnia 2013

Wojciech Kucewicz 

65

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

24 kwietnia 2013

Wojciech Kucewicz 

66

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

24 kwietnia 2013

Wojciech Kucewicz 

67

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

background image

24 kwietnia 2013

Wojciech Kucewicz 

68

Liczby 

zmiennoprzecinkowe

Liczby 

zmiennoprzecinkowe

background image

24 kwietnia 2013

Wojciech Kucewicz 

69

Liczby zmiennoprzecinkowe

Liczby zmiennoprzecinkowe

Omawiane do tej pory liczby były przedstawiane w tak zwanej 

reprezentacji stałoprzecinkowej (fixed-point notation), w której 

położenie kropki jest stałe niezależne od wielkości liczb. 

Przykładowo format 8-bitowy liczby można zapisać następująco:

XXXX.XXXX

Jeżeli liczby wprowadzone do tego formatu znacznie się od siebie 

różnią  np. 

A=1234,00 i B=0,0005579

to wiąże się to z dużym błędem 

obcięcia liczby  B:

A = 1234,0000

B = 0000,0005

background image

24 kwietnia 2013

Wojciech Kucewicz 

70

Liczby zmiennoprzecinkowe

Liczby zmiennoprzecinkowe

Aby uniknąć błędów zapisu reprezentacji stałoprzecinkowej (fixed

point notation), stosuje się również zmiennoprzecinkowy zapis liczb 

(floating-poit notation)

Reprezentację zmiennoprzecinkową liczby L definiuje się jako 

złożenie dwóch słów M i W

L = M * p

W

gdzie 

słowo M (mantysa) 

– liczba ułamkowa ze znakiem

słowo W (wykładnik) – liczba 

całkowita ze znakiem

p

- podstawa kodu zastosowane do zapisu M i W

Przykładowo liczby 

A=1234,0 i B=0,0005579

można zapisać:

A = 0,1234 * 10

4

B = 0,5579 * 10

-3

background image

24 kwietnia 2013

Wojciech Kucewicz 

71

Liczby zmiennoprzecinkowe

Liczby zmiennoprzecinkowe

Istotną zaletą reprezentacji zmiennoprzecinkowej jest duży zakres 

liczb, które można w ten sposób przedstawić.

W przypadku 4 bitowej mantysy i wykładnika, można przedstawić 

liczby w zakresie:

0,0000 * 10

0000 

≤ L ≤ 0.9999 * 10

9999

Liczby binarne można przedstawiać w kodzie ZM, U1 lub U2

0,0000 * 2

0000

≤ L ≤ 0.1111 * 2

1111

background image

24 kwietnia 2013

Wojciech Kucewicz 

72

Liczby zmiennoprzecinkowe

Liczby zmiennoprzecinkowe

Dodawanie liczb zmiennoprzecinkowych wymaga najpierw wyrównania 

wykładników, a następnie właściwa operację dodawania wykonuje się 

na mantysach jak na stałoprzecinkowych liczbach ze znakiem.

W celu wyrównania wykładników mniejszy z nich odejmuje się od 

większego i mantysę związaną z tym mniejszym przesuwa się w prawo 

o liczbę pozycji równą otrzymanej różnicy. Wynik  jest sumą mantys 

z większym wykładnikiem.

Dodanie liczb binarnych A=0,1101*2

1000 

i B=0,1011*2

0101

wykonujemy 

następująco:

1000 – 0101 = 0011 

(3)

B=0,

000

1011

A+B = (0,1101000 + 0,0001011)*2

1000 

=0,1111

011

*2

1000

011