background image

Architektura komputerów

3. ARYTMETYKA 

KOMPUTEROWA

background image

3 ARYTMETYKA KOMPUTEROWA

3.1 Systemy liczbowe
3.2 Arytmetyka dwójkowa 
3.2.1 Operacje arytmetyczne w systemie 

dwójkowym – liczby dodatnie

3.2.2 Operacje arytmetyczne w systemie 

dwójkowym – kod bezpośredni 

3.2.3 Operacje arytmetyczne w systemie 

dwójkowym – kody uzupełnieniowe 

3.3 Liczby zmiennoprzecinkowe
3.4 Znaki alfanumeryczne
3.4.1Kod ASCII

ArKom 2013 – 3. Arytmetyka 

komputerowa

2 - 2

background image

• Data 9.1.2013 
• Pozycyjne systemy liczbowe: 

ArKom 2013 – 3. Arytmetyka 

komputerowa

3

r – podstawa; 10, 2, 8, 16
a

i

 – współczynnik; 0  ai  r-1

n-1 – liczba cyfr całkowitych
m – liczba cyfr ułamkowych 

1

0

1

2

1

...

a

a

a

a

a

N

n

n

1

1

0

0

1

1

2

2

1

1

10

10

10

...

10

10

a

a

a

a

a

N

n

n

n

n

i

i

n

m

i

r

a

N

1

background image

Przykład 3.1
• 234,56

10 

• 1011,01

2

 - ile to jest w systemie 

dziesiętnym? 

• 234,56

– ile to jest w systemie 

dziesiętnym?

ArKom 2013 – 3. Arytmetyka 

komputerowa

4

background image

dziesiętn

y

dwójkowy

trójkowy ósemkowy szesnastko

wy

0

0

0

0

0

1

1

1

1

1

2

10

2

2

2

3

11

10

3

3

4

100

11

4

4

5

101

12

5

5

6

110

100

6

6

7

111

101

7

7

8

1000

 

10

8

9

 

 

11

9

10

 

 

 

A

11

 

 

 

B

12

 

 

 

C

13

 

 

 

D

14

 

 

 

E

15

 

 

 

F

16

 

 

 

10

17

 

 

 

11

18

 

 

 

 

19

 

 

 

 

20

 

 

 

 

21

 

 

 

 

ArKom 2013 – 3. Arytmetyka 

komputerowa

5

background image

Przykład 3.2
• 210,01

3

• F19A,1

16

 - ile to jest w systemie 

dziesiętnym 

• Konwersja liczb

ArKom 2013 – 3. Arytmetyka 

komputerowa

6

background image

Dwójkowe kodowanie cyfr dziesiętnych 

BCD (Binary Coded Decimal)

 

Kod dziesietny

Kod dwójkowo-

dziesiętny 

(naturalny)

0

0000

1

0001

2

0010

3

0011

4

0100

5

0101

6

0110

7

0111

8

1000

9

1001

10

?

wagi

8421

ArKom 2013 – 3. Arytmetyka 

komputerowa

7

background image

Przykład 3.3
• 100000110110,00010101
• 801,17

• Rejestry – modulo n

ArKom 2013 – 3. Arytmetyka 

komputerowa

8

background image

3.2 Arytmetyka dwójkowa
3.2.1 Operacje arytmetyczne w systemie 
dwójkowym – liczby dodatnie 

• Dodawanie, odejmowanie

Przykład 3.4
• 110111 + 1011 =
• 1011 + 0,101 = 

ArKom 2013 – 3. Arytmetyka 

komputerowa

9

background image

Przykład 3.5
• 110111 - 1011 =
• 1011 - 0,101 = 
• 0,01 – 0,01101 = 

ArKom 2013 – 3. Arytmetyka 

komputerowa

10

background image

• Mnożenie (rejestry mnożnika, 

mnożnej, iloczynu) 

Przykład 3.6
• 11101 * 1001 =       + rysunek 

rejestrów

• 101,011 * 11,0101 =  

ArKom 2013 – 3. Arytmetyka 

komputerowa

11

background image

• Dzielenie (gdy dzielnik nie jest liczbą 

całkowitą, należy przesunąć 
przecinek

Przykład 3.7
• 1101,1 : 10,11 =

ArKom 2013 – 3. Arytmetyka 

komputerowa

12

background image

3.2.2 Operacje arytmetyczne w systemie 
dwójkowym – kod bezpośredni 

• Kod bezpośredni – znak 

.

 moduł liczby 

• Uzgadnianie znaku wyniku + operacje na 

modułach

Przykład 3.8
• (-10111) + (1011) =1.10111 + 0.1011 =    

(rejestry)

• (-1011) + (-0,101) = 
• (-101,1) * (+11,01) = 

ArKom 2013 – 3. Arytmetyka 

komputerowa

13

background image

3.2.3 Operacje arytmetyczne w systemie 
dwójkowym – kody uzupełnieniowe 

• Uzupełnienie r-te liczby N o podstawie r 

ArKom 2013 – 3. Arytmetyka 

komputerowa

14

n – liczba pozycji przed 
przecinkiem

Przykład 3.9

N = 234,25 

N

r

N

n

75

,

765

25

,

234

10

3

N

background image

• Uzupełnienie dwójkowe liczby 

• Przykład 3.10
• N = 1101,01 

ArKom 2013 – 3. Arytmetyka 

komputerowa

15

11

,

10

01

,

1101

10000

01

,

1101

10

4

N

background image

Algorytm otrzymywania uzupełnienia dwójkowego
1. Analizę rozpoczynamy od najmniej znaczącej 

pozycji

2. Najmniej znaczące pozycje liczby równe 0, 

łącznie z pierwszą napotkaną jedynką 
przepisujemy bez zmiany

3. Pozostałe pozycje liczby uzupełniamy dwójkowo 

– 0 na 1, 1 na 0

Przykład 3.11
• N = 11001101,01000 

ArKom 2013 – 3. Arytmetyka 

komputerowa

16

11000

,

00110010

N

background image

Kod uzupełnieniowy N

uzup

 

ArKom 2013 – 3. Arytmetyka 

komputerowa

17

Przykład 3.12
N = +11001101,01000      N

uzup

 = 

0.11001101,01 
N = -1011,0110                N

uzup

 = 

1.0100,1010

0

.

1

0

.

0

N

gdy

N

N

gdy

N

N

uzup

background image

Algorytm dodawania liczb względnych w kodzie 
uzupełnieniowym
1. Zapisać liczby w kodzie uzupełnieniowym
2. Dodać obie liczby łącznie z pozycjami znaków (ew. 

przeniesienie na pozycji znaku gubi się

3. Gdy wynik dodawania ma na pozycji znaku 0, to 

jest to liczba dodatnia  zapisana w kodzie 
bezpośrednim. Natomiast gdy na pozycji znaku 
jest 1, to wynik jest ujemny, a liczba zapisana w 
kodzie uzupełnieniowym i należy 
przeprowadzićkonwersje do kodu bezpośredniego. 

ArKom 2013 – 3. Arytmetyka 

komputerowa

18

background image

Przykład 3.13
Dodaj A = +1001111 oraz B = -0101101

• Kody bezpośredni A = 0.1001111   B = 

1.0101101

• Kod uzupełnieniowy A

uzup

 = 0.1001111   B

uzup

 = 

1.1010011

• (A + B)

uzup

 = 0.1001111 + 1.1010011= 

(1)0.0100010

ArKom 2013 – 3. Arytmetyka 

komputerowa

19

background image

3.3 Liczby zmiennopozycyjne

• Cechy (atrybuty) liczby rzeczywistej;

Znak, wielkość (zakres), dokładność 

Przykład 3.14

- 2345,000006000
+ 0,0000000000001234
- 987654321,01

• Dostosowanie do operacji 

„arytmetycznych” 

ArKom 2013 – 3. Arytmetyka 

komputerowa

20

background image

• Liczby zmiennopozycyjne, 

zmiennoprzecinkowe, notacja naukowa

• Zapis liczby zmiennoprzecinkowej

 <znak  mantysa  wykładnik>

• s (sign) – znak liczby, 1, 0 lub -1
• M (mantissa) – znormalizowana mantysa, liczba 

ułamkowa (lub jedna pozycja przed przecinkiem) 

• B (base) – podstawa systemu liczbowego (2 dla 

systemów komputerowych)

• E (exponent) – wykładnik, liczba całkowita

ArKom 2013 – 3. Arytmetyka 

komputerowa

21

 

E

B

M

s

background image

Przykład 3.15

- 2345,000006000 => <- 2345000006 5>
+ 0,0000000000001234 => <+ 1234 -12>
- 987654321,01 => <- 98765432101 10>

ArKom 2013 – 3. Arytmetyka 

komputerowa

22

background image

• Notacja naukowa

• Notacja naukowa

L = znak   mantysa   E   wykładnik

Przykład 3.16

- 2345,000006000 => - 2,345E3
+ 0,000 000 000 000 123 4 => + 1,234E-13
- 987 654 321,01 => - 9,8765432101E8

ArKom 2013 – 3. Arytmetyka 

komputerowa

23

background image

Ograniczona wielkość pól przeznaczonych 
do zapisu mantysy i wykładnika 

Przykład 3.17
Pole mantysy ma pięć pozycji, czyli

- 2345,000006000 => 

<- 2345000006 5> => 

<-   23450   5>

+ 0,0000000000001234 => <+ 1234 -12> => 

<+  12340   -12>

- 987654321,01 => <- 98765432101 10> => <- 

  98765   10>

ArKom 2013 – 3. Arytmetyka 

komputerowa

24

background image

• Dwójkowa reprezentacja liczb 

zmiennopozycyjnych 

• Dla każdego pola liczby zmiennoprzecinkowej są 

przeznaczone określone liczby bitów, w których 
zapisuje się kody dwójkowe

Przykład 3.17
Pole mantysy ma pięć bitów + znak, a pole 
wykładnika 3 bity + znak, 

1 10100  0 100 => - 0,5*(10)

4

 

czyli jaki jest zakres możliwych liczb?

ArKom 2013 – 3. Arytmetyka 

komputerowa

25

background image

• Problem zakresu liczb 

zmiennopozycyjnych 

26.11.2013

ArKom 2013 – 3. Arytmetyka 

komputerowa

26

0

+L

m

-L

m

-L

M

+L

M

Nadmi
ar
Overflo
w
 

Nadmia
r
Overflo

Niedomi
ar
Underflo
w
 

Konieczna 
definicja,

background image

• Standard IEEE 754 

• Przybliżenie liczby rzeczywistej – zapis: 

L= s 2

 m 

• mantysa  

ArKom 2013 – 3. Arytmetyka 

komputerowa

27

• Zero - można być zakodować na wiele 

sposobów -  jest kodowane 0 => s=+1, 
w=0, m=0 

1

,

0

m

background image

• Znak - jeden bit, równy 0  (s= + ) lub 1 (s= - )  
• Wykładnik - jak każda inna liczba całkowita w 

kodzie uzupełnieniowym do dwóch. 

• Mantysa jest mnożona przez 2

f

 , gdzie   to liczba 

bitów przeznaczona na nią i zapisywana jako 
liczba naturalna.

ArKom 2013 – 3. Arytmetyka 

komputerowa

28

background image

• Całość zajmuje kolejnych 4 (liczba krótka), 8 

(liczba długa) albo 16 bajtów (podwójnej precyzji 
– zależy od wymaganej precyzji. 

Przykład 3.18
Liczba krótka 

ArKom 2013 – 3. Arytmetyka 

komputerowa

29

31

30

22                                                   

0

s

e

M (kod uzupełnieniowy)

1

8

23

Liczba długa

63

62

51                                              0

s

e

M (kod uzupełnieniowy)

1

8

23

background image

• Operacje na liczba zmiennopozycyjnych

• Mnożenie, dzielenie
• Dodawanie, odejmowanie

ArKom 2013 – 3. Arytmetyka 

komputerowa

30

background image

3.4 Znaki alfanumeryczne

Kody alfanumeryczne  stosuje się do 
zapisu;

–  cyfr, 
– liter (różne alfabety), 
– znaków pisarskich, 
– znaków graficznych, 
– znaków funkcyjnych (edytorskich)

ArKom 2013 – 3. Arytmetyka 

komputerowa

31

background image

3.4.1 Kod ASCII 

• Kod ASCII – American Standard Code for 

Information Interchange

• Istnieją:

–  wersja 7 bitowa (wersja podstawowa) – każdy znak 

zapisywany jest jako kod siedmiobitowy

– wersja 8 bitowa (wersja rozszerzona) – dla 

dostosowania się do bajtowej organizacji pamięci i 
ósmy bit jest zawsze równy zero

• „bardzo uporządkowany” standard np. 

– duże i małe litery różnią się jednym ustalonym (6-tym) 

bitem; 0 – duża litera, 1 – mała

– „numeracja” liter odpowiada kolejności w alfabecie

ArKom 2013 – 3. Arytmetyka 

komputerowa

32

background image

• Litery

• alfabetem podstawowym - alfabet łaciński – 

tabela kodowa - i wtedy znaki są zapisywane jako

• inne alfabety -„własne rozszerzające tabele 

kodowe” + odwołanie poprzez sekwencję 
rozszerzającą (escape sequence) się znakiem 
funkcyjnym ESC; zapis

ArKom 2013 – 3. Arytmetyka 

komputerowa

33

0

Bity 7 - 1

1

Bity 7 - 1

background image

• Cyfry

• zapis jednobajtowy – używany do przesłania 

liczby

• zapis upakowany – do przetwarzania 

ArKom 2013 – 3. Arytmetyka 

komputerowa

34

0011

Kod BCD

Kod BCD

Kod BCD

background image

• Znaki sterujące

• Ramka protokołu BISYNC (Binary Synchronous 

Transmission) [WK?]

ArKom 2013 – 3. Arytmetyka 

komputerowa

35

SY

N

SY

N

SO

H

nagłówek

ST

X

tekst

ET

X

BC

C

Znaki kodu ASCII

SOH – Start of Head
STX – Start of Text
ETX – End of Text

Znaki spoza kodu ASCII
SYN – synchronizacja 
BCC 
– Block Check Character – znak kontrolny -  nie 

jest znormalizowane w kodzie ASCII i może to być 
suma modulo 2


Document Outline