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

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

ПРЕТСТАВУВАЊЕ НА ДЕЦИМАЛНИТЕ БРОЕВИ ВО КОМПЈУТЕРОТ

Вовед и активирање на претходни знаења

Честопати се работи со многу големи или многу мали броеви. На пример масата на сонцетo е
1990000000000000000000000000000000 грама, масата на електронот е
0.000000000000000000000000000910956 грама. За нивно претставување во компјутерот се
користи таканаречено претставување со подвижна децимална точка. На пример бројот 237,56
може да се претстави како 2.3756x102 или 0.0002375x106 или 237560x10-4 и тн. Тоа значи дека
децималната точка можеме да ја поставиме каде било, а вредноста на бројот е одредена со
експонентот на бројот 10.

Главен дел
Слично е и со бинарните броеви, само кај нив се користи основата 2. Така општиот облик на
децимален бинарен број е М·2E, каде што M се нарекува Мантиса, а Е се нарекува
Експонент.
На пример , децималниот бинарен број 11010.001 се запишува како 0.11010001x2101, (1012=510)
со мантисата M=0.110100012 и со
експонент Е=1012. Ако бројот е 0.0001011012, тој се запишува како 0.101101·2-11 т.е. со
мантиса M=0.1011012 и со експонент E=-112.
На ваков начин се обезбедува мантисата да е меѓу 0.10000… и 1.11111…, т.е. 0.10000… <М<
1.11111…,
Бидејќи по децималната точка секогаш има 1, велиме дека мантисата е нормализирана и кај
компјутерите тој бит не се запишува, а се подразбира, со цел да се заштеди мемориски
простор.

Во персоналните компјутери се користи стандардот на организацијата на инжењери IEEE


(Institute of Electrical and Electronics Engineers Standards), според кој мантисата се
запишува со вредност помеѓу 1 и 2 ( 1<M<2 ), т.е. има вредност 1.00...0 до 1.11...1, односно
во облик 1+F, каде што F е десно од децималната точка и има вредност од 0.0000...до
0.1111... . На овој начин скриениот бит 1 се подразбира и не се запишува, а со тоа се
заштедува еден бит кој ќе се употреби за претставување на експонентот. Така бројот
11010.1012 може да се запише како 1.1010101·2100, т.е. со децимална мантиса F=10101012 и со
експонент E = 1002 =410. Значи бинарниот децимален број има облик (1+F)·2E.
Децималната мантиса и експонентот се претставуваат во компјутерот во зависност од
должината на зборовите. Ако компјутерот има w-битни зборови, тогаш претставувањето се
врши на следниот начин:

Бројот ќе зафати вкупно: 1+e+m бита

-Ознаката „S” е бит за знакот на бројот, и тоа 0 за позитивен број , 1 за негативен број,
- „е” е бројот на битови за претставување на експонентот Е со поместувањето, и
- „m” е бројот на битови за децималната мантиса F.

Бројот 2е-1-1 се нарекува поместување на експонентот. Значи експонентот не се запишува во


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

Претставувањето на броевите може да биде со обична прецизност (во 32 бита) и со двојна


прецизност (во 64 бита).

-Кај обичната прецизност првиот бит е за знакот, следните 8 бита се резервирани за


експонентот E+поместувањето 28-1-1 и последните 23 бита за децималната мантиса F.
Вкупно:1+8+23=32 бита(b).
-Кај двојната прецизност првиот бит е за знакот, следните 11 бита се резервирани за
експонентот E+поместувањето 211-1-1 и последните 52 бита за децималната мантиса F.
Вкупно:1+11+52=64 бита(b).

Пример 1:
Да се претстави бројот x=11010.101 со обична прецизност т.е. во 32-битен регистар.

Решение на задачата:
 Запишување на битот за знак: Бидејќи бројот е позитивен, првиот бит S=0
 Запишување на бројот x со подвижна децимална точка:
-Ја поместуваме децималната точка налево за 4 места (позади првата цифра 1) со
цел да го добиеме F, a знаеме дека М=1+F

Значи децималната мантиса F=0.10101012 , а експонентот Е=1002=410

За да го пополниме 32-битниот регистар треба да ги најдеме експонентот


+поместувањето Е+28-1-1
S Е+28-1-1 F

-Експонентот + поместувањето е: E=4+28-1-1=4+27-1=4+127=13110


-го претвораме бројот 13110 во бинарен број

-добиваме Е+поместувањето=410+12710=13110=100000112

- Децималната мантиса: F=0.10101012=0.1010101010000000000000002


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

-Внесување на експонентот+поместувањето и децималната мантиса во 32 битен регистар


S E+28-1-1 F
0 10000011 1110110100000000000000
1b 8b 23b

Така е претставен бројот x=11101.101 со обична прецизност т.е. во 32 b.


Напомена: на F се дoдаваат нули десно за да се исполни просторот до 23 b, знaејќи
дека кај децималните броеви тие нули се неважечки и може да се допишат или
избришат зависно од потребата.

Пример 2:
Да се претстави бројот x=-0.0000101 со обична прецизност т.е. во 32-битен регистар.

Решение на задачата:
 Запишување на битот за знак: Бидејќи бројот е негативен, првиот бит S=1
 Запишување на бројот x со подвижна децимална точка:
-Ја поместуваме децималната точка надесно за 5 места (позади првата цифра 1) со
цел да го добиеме F, a знаеме дека М=1+F

x= -0.0000101= -1.01·2-101=-5
Значи децималната мантиса F=0.12 , а експонентот Е=-1012=-510

За да го пополниме 32-битниот регистар треба да ги најдеме експонентот


+поместувањето Е+28-1-1
S Е+28-1-1 F
-Експонентот + поместувањето е: E=-5+(28-1-1)=-5+(27-1)=-5+127=12210
-го претвораме бројот 12210 во бинарен број

-добиваме Е+поместувањето=-510+12710=12210=11110102

- Децималната мантиса: F=0.12=0.100000000000000000000002


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

-Внесување на експонентот+поместувањето и децималната мантиса во 32 битен регистар


S E+28-1-1 F
0 01111010 10000000000000000000000
1b 8b 23b

Така е претставен бројот x=11101.101 со обична прецизност т.е. во 32 b.


Напомена: на F се дoдаваат нули десно за да се исполни просторот до 23 b, знaејќи
дека кај децималните броеви тие нули се неважечки и може да се допишат или
избришат зависно од потребата.

Забележувате дека во регистарот е додадена една нула напред кај E+28-1-1 . Зошто?

Домашна задача:
Претставете го бројот 111.011 со:
А) обична прецизност, Б) двојна прецизност
-Претставете го бројот -0.00011 со:
А) обична прецизност, Б) двојна прецизност

You might also like