01. diglog12

72
БРОЈНИ СИСТЕМИ 1

Upload: dimitar-markov

Post on 13-Apr-2015

246 views

Category:

Documents


9 download

DESCRIPTION

Brojni sistemi

TRANSCRIPT

БРОЈНИ СИСТЕМИ

1

Како дигитален уред компјутерот ги обработува сите инструкции и податоци во бинарен облик, односно како низи од нули и единици. Во оваа глава се разгледуваат различни репрезентации на броевите и другите податоци кај компјутерите.

2

Позициони бројни системи Бројните системи може да бидат позициони и

непозициони. На пример, непозиционен броен систем е системот на римски броеви. Кај позиционите бројни системи важна е позицијата на цифрата во бројот.

Бројот N во броен систем со основа b кај позиционите бројни системи се означува

каде b>1 и

bmnnb PPPPPPPN ) ... .... ()( 21011

10 bPi

3

Позициони бројни системи Позиционата репрезентација на бројот N има облик

Во табела 1.1 се претставени најчесто користените бројни системи, со нивните основи и цифри.

Во позиционата репрезентација на бројот, цифрата Pn се нарекува најзначајна цифра (MSD - Most

Significant Digit), а цифрата Po најмалку значајна цифра (LSD - Least Significant Digit).

m

m

n

n

n

nb bPbPbPbPbPbPN

......)( 2

2

1

1

0

0

1

1

n

mi

i

ib bPN )(

4

Табела 1.1: Бројни системи, основи и цифри на бројните системи

5

име основа цифри

бинарен 2 0,1

тернарен 3 0,1,2

кватернарен 4 0,1,2,3

квинтален 5 0,1,2,3,4

октален 8 0,1,2,3,4,5,6,7

декаден 10 0,1,2,3,4,5,6,7,8,9

дуодекаден 12 0,1,2,3,4,5,6,7,8,9,А,B

хексадекаден 16 0,1,2,3,4,5,6,7,8,9,A, B,C,D,E,F

Позициони бројни системи

6

Пример 1.1: Позиционата репрезентација на декадниот број 1234 во броен систем со основа b=10 е

0123

10 104103102101)1234(

Бинарни, октални и хексадекадни конверзии

7

За окталниот и хексадекадниот броен систем конверзијата во бинарен систем е едноставна. Општо, за броеви од бројни системи каде основата е степен на бројот 2, конверзијата во бинарни броеви е едноставна.

Претворањето од бинарен во октален броен систем се врши на тој начин што бинарните цифри се групираат по 3 и тоа почнувајќи од запирката налево за целиот дел и надесно за децималниот дел. Потоа, секоја група од 3 цифри се претвора во октална вредност. Доколку е потребно, пред бројот може да се додадат нули при групирање на целиот дел. Исто така, може да се додадат нули по бројот, при групирање на децималниот дел. Со три бита може да се претстават броевите од 0 до 7.

Бинарни, октални и хексадекадни конверзии

8

Пример 1.2: Да се претстави бинарниот број 10110111011,1101 во октален број.

010110111011, 110100 = (2673,64)8

2 6 7 3 6 4

Претворањето од октален во бинарен систем се прави со замена на секоја октална цифра со нејзината 3-битна бинарна репрезентација. Слично, за претворање на бинарен во хексадекаден број се формираат групи од 4 цифри и се претвораат во хексадекадна вредност.

Бинарни, октални и хексадекадни конверзии

9

Пример 1.3: Да се претстави бинарниот број 10100 во хексадекаден и декаден броен систем.

00010100 = (14)16 = (20)10

1 4

Конверзија во декаден броен систем

10

Еден начин на конверзија на број од систем со било која основа во декаден броен систем се изведува со користење на позиционата репрезентација. Позиционата репрезентација уште се нарекува полиномијална репрезентација.

Пример 1.4: Да се претвори бинарниот број 1011.101 во декаден

625,118

1

2

1128

21202121212021 3210123

Конверзија во декаден броен систем

11

Пример 1.5: Да се претвори квинталниот број (3241)5 во декаден

3•53 + 2•52+ 4•51+1•50= 446

Друг начин на конверзија на број во декаден е со користење на формулата

Оваа формула се користи за претворање на целиот дел од бројот во декаден броен систем. Ваквиот начин на претставување овозможува конверзија на бројот во чекори, односно претворањето се врши со последователно множење со основата и собирање.

Конверзија во декаден броен систем

12

Пример 1.6: Бројот (3241)5 се претвора во декаден така што се множи секоја цифра почнувајќи од најзначајната цифра со основата 5 и производот се собира со следната цифра

3*5+2=17

17*5+4=89

89*5+1=(446)10

Претворање на децималниот дел од бројот се врши со користење на следната формула

Според формулата 1.4 претворањето на децималниот дел е последователно делење со основата на бројниот систем и собирање.

Конверзија во декаден броен систем

13

Пример 1.7: Да се претвори (0,534)8 во декаден броен систем.

Се започнува од најмалку значајната цифра 4 и се изведува последователно делење со основата на бројниот систем 8 и собирање на следната цифра.

4:8 + 3 = 3,50

3,50:8 + 5 = 5,4375

5,4375:8 + 0 = 0,6796875

Конверзија од декаден во друг броен систем

14

Претворањето на број од декаден броен систем во броен систем со основа b, за целиот дел од бројот, се изведува со последователно делење со основата и запишување на остатокот, се до добивање на 0 како количник.

Конверзија од декаден во друг броен систем

15

Пример 1.8: Да се претвори (44)10 во бинарен броен систем.

44:2 = 22 остаток 0

22:2 = 11 остаток 0

11:2 = 5 остаток 1

5:2 = 2 остаток 1

2:2 = 1 остаток 0

1:2 = 0 остаток 1

Запишаните остатоци од долу нагоре го претставуваат бројот во бинарен броен систем (44)10=(101100)2.

Конверзија од декаден во друг броен систем

16

Претворањето на децималниот дел од бројот од декаден во систем со основа b се изведува со последователно множење на бројот со основата и одземање на целиот дел, се до добивање на 0, ако е тоа можно. Во случај да не се добие нула, бројот во бројниот систем со основа b има бесконечно многу цифри по запирката.

Пример 1.9: Да се претвори (0,6796875)10 во октален

броен систем. 0,6796875*8 = 5,4375

0,4375*8 = 3,50 0,50*8 = 4,0 0

Според тоа (0,6796875)10 = (0,534)8.

Конверзија од еден во друг броен систем

17

Оваа конверзија се изведува со претворање на броевите од системот со основа b1 во декаден броен систем и потоа на декадните броеви во броеви на систем со основа b2.

Пример 1.10: Да се конвертира (16)7 во систем со основа 3.

(16)7=1*71+6*70=(13)10

13 : 3 = 4 остаток 1

4 : 3 = 1 остаток 1

1 : 3 = 0 остаток 1

(13)10=(111)3

Ако при конверзија на броеви од еден во друг броен систем процесот не завршува, во тој случај група на цифри се повторуваат бесконечно.

Конверзија од еден во друг броен систем

18

Бинарна аритметика

19

Бинарно собирање

Во табелата се претставени правилата за бинарно собирање

Сума Пренос (carry)

0+0=0 0

0+1=1 0

1+0=1 0

1+1=0 1

Бинарно собирање

20

Преносот е цифра која треба да се додаде на следната колона во лево. Според правилата за собирање:

збир на две 0 дава 0

збир на 0 и 1, или 1 и 0 дава 1

збир на две 1 дава 0 како резултат и 1 како пренос кон битот со поголема тежина.

Општо правило за собирање е да се соберат колоните децимално и да се подели со базата на бројниот систем. Остатокот се внесува како сума за таа колона, а коефициентот се додава на следната колона во лево.

Бинарно собирање

21

Бинарно одземање

22

Бинарно одземање

23

Ако треба да се позајми, а во колоната со поголема тежина има цифра 1, цифрата во тековната колона се менува во 2 а во колоната со поголема тежина во 0.

02 позајмување 10 - 01 ___

01 Ако колоната од која треба да се позајми има цифра 0 се оди на

претходна и таа се менува во 0, сите следни во 1, а последната во 2.

0112 позајмување 11000 24 - 10001 -17

______ ___ 00111 7

Шифтирање/поместување (shift)

24

Шифтирање на запирката к места во лево одговара на делење на бројот со 2к, односно множење со 2-к, додека шифтирање на запирката к места во десно одговара на множење со 2к.

Пример 1.14: Ако е даден бројот (110.101)2=(6.625)10 со

шифтирање на запирката за 2 места во лево се врши делење со 22 (множење со 2-2) и се добива

(1.10101)2=2-2(6.625)10=(1.65625)10 а со шифтирање на запирката за 2 места во десно се

врши множење со 22 односно (11010.1)2=22(6.625)10=(26.5)10.

Бинарно множење

25

Бинарно множење

26

Пример 1.15: Множење на два бинарни броја 110.10 и 10.1 се изведува на следниот начин

110.10

x 10.1

________

11010

11010

___________

10000.010

Знакот на производот е негативен ако едниот од множителите е негативен. Можно е да се изведе множење на негативни броеви претставени со комплемент. Ова се изведува со шема BoothAlgorithm, со која се забрзува множењето.

Бинарно делење

27

Бинарното делење е слично на децималното делење. Бидејќи делителот може да се содржи 1 или 0 пати во деленикот бинарното делење е едноставно. Меѓуоперациите множење и одземање се изведуваат во бинарниот систем.

Пример 1.16: Делење на броевите (11000)2= (24)10 и

(110)2= (6)10 11000 : 110 = 100 110 _____ = = 00

Бинарно делење

28

Пример 1.17: Делење на броевите (101110)2= (46)10 и (111)2= (7)10

101110 : 111 = 0110

000

_____

1011

- 111

_____

=1001

- 111

______

100 остаток

За да се имплементира бинарно делење на компјутер мора да се користи алгоритам за делење. Во продолжение се опишани 2 алгоритми за делење: со враќање на претходната вредност на деленикот и без враќање на претходната вредност на деленикот (restoring and nonrestoring algorithm).

Алгоритам за делење со враќање на претходната вредност на деленикот

29

Во првиот чекор делителот се одзема од деленикот со подредени најлеви цифри. Ако резултатот е позитивен, се пишува 1 во количникот како најдесна цифра. Во деленикот се додава следната цифра, делителот се шифтира едно место во десно и се повторува постапката.

Ако резултатот е негативен, се пишува 0 во количникот и делителот се собира со негативниот резултат, односно се врши враќање на оригиналниот деленик. Потоа делителот се шифтира едно место во десно и пак се врши делење.

Kaj делењето со реставрација наместо делење се врши одземање со делителот и доколку разликата е негативна, се пишува 0 во количникот и се врши реставрација (корекција) со собирање на делителот, па на ново добиениот број се спушта наредната цифра. Доколку при одземањето се добие позитивен број, во количникот се додава 1, а на разликата се спушта наредната цифра.

Алгоритам за делење со враќање на претходната вредност на деленикот

30

31

1 1 0 0, 0 0 0 0 0 : 1 1 1 1 = 0, 1 1 0 0 1

- 1 1 1 1 количник

- 0 0 1 1

+ 1 1 1 1

1 1 0 0 0

- 1 1 1 1

1 0 0 1 0

- 1 1 1 1

0 0 1 1 0

- 1 1 1 1

- 1 0 0 1

+ 1 1 1 1

1 1 0 0

- 1 1 1 1

- 0 0 1 1

+ 1 1 1 1

1 1 0 0 0

- 1 1 1 1

1 0 0 1 Остаток

Алгоритам за делење без враќање на претходната вредност на деленикот

32

Чекорот на додавање на делителот кон парцијалниот негативен деленик не се изведува. Наместо тој чекор се изведува собирање на шифтираниот делител со негативниот парцијален деленик. Овој чекор заменува 2 чекори: додавање на делителот и одземање на шифтираниот делител.

Кај делењето без реставрација доколку при одземањето или собирањето се добие негативен број, се пишува 0 во количникот, веднаш се спушта наредната цифра и се додава делителот. Доколку при одземањето се добие позитивен број, во количникот се додава 1, веднаш се спушта наредната цифри од ново добиениот број се одзема делителот.

Следните чекори ја објаснуваат оправданоста на постапката: Нека X е парцијален негативен деленик, Y е делител, а 1/2Y е

шифтирање на делителот за едно место во десно. Додавање на делителот и потоа одземање на шифтираниот

делител е X+Y-1/2Y=X+1/2Y, што всушност е додавање на шифтираниот делител.

33

1 1 0 0, 0 0 0 0 0 : 1 1 1 1 = 0, 1 1 0 0 1

- 1 1 1 1 количник

- 0 0 1 1 0

+ 1 1 1 1

+ 1 0 0 1 0

- 1 1 1 1

0 0 1 1 0

- 1 1 1 1

- 1 0 0 1 0

+ 1 1 1 1

- 0 0 0 1 1 0

+ 1 1 1 1

1 0 0 1 остаток

Алгоритам за делење без враќање на претходната вредност на деленикот

34

Претставување на броеви

35

Кај компјутерите броевите може да се претстават на три начина: со фиксна запирка (fixedpoint), со подвижна запирка (floatingpoint) и како бинарно кодирани декадни броеви (BCD-BinaryCodedDecimals). Основните математички операции: собирање, одземање, множење и делење може да се изведуваат во сите три начина на претставување на броевите.

Кога се работи со броеви претставени со фиксна запирка се разликуваат операции врз целиот дел (запирката е десно од бројот) и операции врз децималниот дел (запирката е лево од бројот).

Ако компјутерот има збор од 8 бита бројот 10102 во форматот со фиксна запирка се претставува со дополнување на водечки нули

Претставување на броеви

36

Претставување на броеви

37

При бинарно кодирање на декадни броеви секоја декадна цифра се претставува со четири бинарни цифри. BCD броевите може да бидат во пакуван и непакуван формат.

Во пакуваниот формат две декадни цифри се претставуваат со еден бајт, а во непакуваниот формат една декадна цифра се претставува со еден бајт а се сместува во долниот нибл.

Нибл е група од четири бита.

Претставување на негативните броеви

38

Во формат со фиксна запирка со n бита може да се претстават позитивните цели броеви од интервалот [0,2n-1].

При претставување на негативните цели броеви еден бит се користи за претставување на знак. Бит за знак вообичаено е битот со најголема тежина. Другите битови ја претставуваат вредноста на бројот или комплемент на вредноста на бројот.

Постојат три начини за претставување на целите броеви: знак-модул, единечен комплемент и двоен комплемент. Позитивните броеви во сите три нотации се претставуваат со нивната бинарна репрезентација.

Претставување на негативните броеви

39

Репрезентацијата наречена знак-модул (sign-magnitude) се обележува со SM. Кај овој систем најзначајната цифра го означува знакот, а другите цифри се апсолутната вредност на бројот.

При собирање на броеви со различен знак прво мора да се споредат апсолутните вредности на собироците за да се одреди знакот на резултатот.

Недостаток на овој систем е двојното претставување на нулата. Нулата се претставува како -0 и +0.

Опсегот на броеви кои може да се претстават со n бита кога се користи репрезентација знак-модул е [-(2n-1-1),2n-1-1].

Претставување на негативните броеви

40

Единечниот комплемент на бројот N вообичаено се означува со или N1C.

Се нарекува уште непотполн комплемент и претставува комплемент до најголемата цифра на бројниот систем.

Во бинарниот броен систем тоа е 1. За декаден броен систем најголемата цифра е 9.

Нека во декаден броен систем треба да се најде комплемент на деветката за четирицифрени броеви. Бројот чиј комплемент до девет се бара треба да се одземе од основата на бројниот систем на степен 4 минус 1 или

Така комплемент до 9 за бројот N=2345 e:

N

NNN 99991104

765423459999 N

Претставување на негативните броеви

41

Двојниот комплемент на бројот N вообичаено се означува со или N2C. Се нарекува уште потполн комплемент.

Двојниот комплемент претставува комплемент до основата на бројниот систем.

Во бинарен броен систем тоа е 2, а во декаден броен систем е 10.

Во декаден броен систем двоен комплемент на бројот 2345 се пресметува според формулата:

N

765510000104 NNN

Претставување на негативните броеви

42

Позитивните броеви во нотација единечен комплемент се претставуваат со својата бинарна репрезентација.

Единечниот комплемент на негативен бинарен број се добива со комплементирање на секоја цифра (заменување на 0 со 1 и на 1 со 0). Всушност, секоја цифра на негативните броеви се комплементира до најголемата цифра (до 1 во бинарен броен систем).

Собирањето на броевите претставени со единечен комплемент се изведува така да евентуалниот пренос се отфрла од меѓурезултатот и се собира со цифрата со најмала тежина.

Претставување на негативните броеви

43

Единечниот комплемент се нарекува и комплемент на цифра (digit complement), основа минус еден (radix

minus one), комплемент на единицата (once

complement) или прв комплемент. Се означува со DC.

Опсегот на броеви кои може да се претстават со n бита кога се користи единечен комплемент е

[-(2n-1-1),2n-1-1].

Двојниот комплемент се нарекува и комплемент на основата (radix complement), комплемент на двојката (twos complement), вистински комплемент (true

complement) и се означува со RC.

Претставување на негативните броеви

44

Кога се користи претставување наречено двоен комплемент опсегот на броеви кои може да се претстават со n бита е [-2n-1,2n-1-1]. Репрезентацијата двоен комплемент има единствен приказ на нулата и едноставни аритметички операции, но постои негативен број (-2n-1) чиј спротивен позитивен број не може да се претстави.

При собирање на броеви претставени со двоен комплемент едноставно се изведува собирање, а евентуалниот пренос се отфрла.

На пример со 4 бита (n=4) со единечен комплемент може да се претстават броевите од интервалот [-7,7] а со користење на двоен комплемент броевите од интервалот [-8,7], како што е претставено во табела 1.5. Со системот знак-модул може да се претстават броевите од интервалот [-7,7].

Претставување на негативните броеви

45

Претставување на негативните броеви

46

Од табелата се забележува дека позитивните броеви имаат иста репрезентација во било која нотација.

Битот со најголема тежина (MSB- most significant bit) има

вредност 1 за негативните броеви, а 0 за позитивните броеви. Нотациите SM и DC не обезбедуваат еднозначност, бидејќи имаат двојно претставување на нулата.

Кај RC системот постои единствено претставување на нулата но постои негативен број за кој спротивниот позитивен број не може да се претстави, односно кој е комплемент сам на себе. Бројот (1000)2 е комплемент сам на себе, бидејќи неговиот втор комплемент би бил (0111)2+1=(1000)2.

Претставување на негативните броеви

47

На пример, при 32-битни зборови :

позитивните броеви од 0 до 2 147 483 647 се претставуваат со бинарните репрезентации.

бројот 10000000000000000000000000000000 го претставува најголемиот негативен број (-2 147 483 648)10 = (-231).

бројот (-2 147 483 647)10 = (1000…001)2, а (-1)10 = (111…111)2

негативниот број (- 2 147 483 648)10 нема соодветен позитивен број.

Во табелата 1.6 се претставени некои декадни броеви со знак и нивни бинарни еквиваленти со должина 1 бајт во системот двоен комплемент.

Претставување на негативните броеви

48

Претставување на негативните броеви

49

Единечниот комплемент на бројот е за еден помал од двојниот комплемент N2C=N1C+1. Двојниот комплемент (втор комплемент) на бинарен број е дефиниран со формулата

N2C=(2n)2-N2 (1.5)

Со N2 се означува бинарното претставување на бројот, со N2C двојниот комплемент, а со N1C единечниот комплемент.

Според формулата 1.5 за двојниот комплемент на бројот -4 се добива:

0 1 2 позајмување

1 0 0 0 0 (2n)2

- 1 0 0 N2

_________________

1 1 0 0 N2C

Единечен комплемент (прв комплемент) на број во бинарен броен систем е дефиниран со формулата

N1C=(2n)2-N2-1 (1.6)

Претставување на негативните броеви

50

Според формулата 1.6 за единечниот комплемент на бројот -4 се добива:

0 1 2 позајмување

1 0 0 0 0 (2n)2

- 1 0 0 N2

_________________

1 1 0 0 N2C

- 1

_________________

1 0 1 1 N1C

Комплемент аритметика

51

За претставување на броевите кај компјутерите се користи системот двоен комплемент.

Операцијата одземање се сведува на собирање при што е потребно намалителот да се кодира коректно.

Операцијата множење се изведува со собирање и поместување, а операцијата делење со одземање. На тој начин се поедноставува хардверската реализација на компонентата која изведува аритметички операции.

Во продолжение се илустрирани аритметичките операции во сите 3 системи за претставување на негативни броеви: знак-модул, единечен и двоен комплемент

Комплемент аритметика

52

Кај системот знак-модул постојат две претставувања на нулата. Постојат ист број на позитивни и негативни целобројни вредности кои за n-битни броеви се наоѓаат во опсег од -(2n-1-1) до +(2n-1-1).

При собирање на два броја претставени во системот знак-модул треба да се споредат знаците и модулите на операндите.

На пример, да се изврши одземање на два позитивни броеви во системот знак-модул (01100011)2-(01001111)2

0 1100011 (+99) -0 1001111 (+79) ___________ 0 0010100 (+20)

Комплемент аритметика

53

Ако сега треба да се изврши одземањето (01001111)2-(01100011)2 се одземаат броевите по апсолутна вредност и на позицијата за знак се пишува 1 бидејќи разликата е негативен број:

(01001111)2-(01100011)2=10010100. За конверзија на негативен декаден број во двоен

комплемент не мора да се користи формулата 1.5. Негативниот декаден број може да се конвертира во двоен комплемент на следниот начин: се претставува апсолутната вредност на декадниот број бинарно, се наоѓа единечниот комплемент и се врши инкрементирање за 1. Во продолжение е илустрирана конверзијата на (-5)10 во двоен комплемент

Комплемент аритметика

54

Бинарна репрезентација на 5: 00000101

Единечен комплемент: 11111010

Инкрементирање: + 1

__________

Двоен комплемент на -5: 11111011

Постапката за наоѓање на декадниот број ако е даден двојниот комплемент на некој негативен број се извршува со примена на следните чекори: се наоѓа единечен комплемент на дадениот двоен комплемент, добиениот број се зголемува за 1, се конвертира бинарниот резултат во декаден број и се додава знакот минус. Нека на пример 11111101 е двоен комплемент за кој треба да се најде декадниот еквивалент.

Комплемент аритметика

55

Двоен комплемент: 11111101 Единечен комплемент: 00000010 Инкрементирање: + 1 ________ Апсолутна вредност: 00000011=3 Декаден број: -3 Често при аритметичките операции треба да се конвертира m-

битен број во n-битен. Ако n>m се додаваат n-m нули по битот за знак кај позитивните броеви или n-m единици по битот за знак кај негативните броеви. Бидејќи се додаваат битови кои се еднакви на битот за знак ова проширување се нарекува знаково проширување (sign-extension). Кога n<m се изведува знаково одсекување (sign-truncation), односно испуштање на m-n битови кои следат по битот за знак. Битовите кои се испуштаат треба да се исти со битот за знак и да не се дел од претставувањето на бројот.

Комплемент аритметика

56

При собирање кај системот двоен комплемент ако се добие резултат кој има поголем број на битови од n, се задржуваат само n битови. На пример, да се изврши собирање на два негативни броја

1100 (-4)

+1101 (-3)

--------------

1 1001 (-7)

При собирањето се игнорира 1 која го надминува опсегот на броевите. При собирање на броеви со различен знак никогаш не настанува надминувањето на опсегот (overflow). Кога се собираат броеви од ист знак ако сумата е поголема од најголемиот број кој може да се претстави се добива некоректен резултат. Следниве резултати не се коректни

0101 (+5)

+0111 (+7)

--------------

1100 (-4)

или

1010 (-6)

+1100 (-4)

--------------

1 0110 (+6)

Комплемент аритметика

57

58

Комплемент аритметика

59

На пример, (00010111)2-(00001001)2 =2310-910

00010111 (+23)

+11110111 (-9)

--------------

1 00001110 (+14)

Во табелата 1.7 се претставени броеви во двоен комплемент и знак-модул системите.

60

Комплемент аритметика

61

При собирање на броеви во системот единечен комплемент доколку има пренос, тој се додава на најмалку значајниот бит на резултатот (endaroundcarry). На пример, (00010111)2-(11110110)2 =2310-910

00010111 (23) +11110110 (-9) -------------- 00001101 + 1 --------------- 00001110 (14)

Комплемент аритметика

62

Во продолжение се дадени уште неколку примери за операциите во системот двоен комплемент.

Кога се изведуваат операции со цели броеви за добивање на единечниот и двојниот комплемент се користат претходно спомнатите формули:

Примерите кои следуваат се однесуваат на наоѓање на единечен и двоен комплемент на реални броеви.

12

2

21

22

NN

NN

n

C

n

C

Комплемент аритметика

63

Претставување на броеви со подвижна запирка

64

Претставување на броеви со подвижна запирка

65

Знакот е 0 за позитивни броеви и 1 за негативни броеви. Експонентот може да биде модификуван (biased) и немодификуван (unbiased). За 8-битен експонент вредноста на немодификуваниот експонент е во опсег -128...0...+127, а на модификуваниот 0...+128...+255.

Во бинарен броен систем кај нормализираните броеви најзначајниот бит на мантисата секогаш ќе биде 1 (освен кога се претставува вредноста 0). Затоа, најзначајниот бит не мора да се памти и на мантисата може да и се додели уште еден бит, со што се постигнува поголема прецизност. Овој бит се нарекува скриен бит (hidden bit). Тој мора да се земе во предвид при пресметување на бројот иако не е прикажан.

Претставување на броеви со подвижна запирка

66

Најпознат стандард за форматот подвижна запирка е IEEE 754 кој е воведен кај IBM/370 и PDP-11 на фирмата DEC. Стандардот ги определува правилата за заокружување, случаите на underflow, overflow и слично. Кај IEEE 754 постојат четири основни формати:

единечна прецизност Е=8 бита, F=23 бита двојна прецизност Е=11 бита, F=52 бита единечнапрецизност-проширен формат Е≥11 бита,

F≥31 бита двојна прецизност-проширен формат Е≥15 бита, F≥63

бита. Во последните два формата бројот на битови за Е и F

зависи од имплементацијата.

Претставување на броеви со подвижна запирка

67

Претставување на броеви со подвижна запирка

68

Претставување на броеви со подвижна запирка

69

Бројот на битови кои се користат за експонент и мантиса го одредува опсегот на броеви кои може да се претстават (број на битови во експонентот) и прецизноста (број на битови во мантисата). Опсегот на броеви е ограничен со најмалиот и најголемиот број кои може да се претстават. При обид за претставување на број помал од најмалиот број кој може да се претстави во форматот се јавува underflow, а при обид за претставување на број поголем од најголемиот кој може да се претстави во форматот се јавува overflow.

За илустрација на претставувањето на броевите во формат со подвижна запирка во примерите кои следат се користи модел со 14 бита, каде еден бит е знак, 5 бита се експонент, а 8 бита мантиса.

Претставување на броеви со подвижна запирка

70

Претставување на броеви со подвижна запирка

71

Претставување на броеви со подвижна запирка

72