Програмирање 2/К1П 2019

Извор: SI Wiki
< Програмирање 2
Датум измене: 12. фебруар 2020. у 23:57; аутор: TopOfKeks (разговор | доприноси) (Нова страница: == Pitanja == === 1. pitanje === ''Na nekom računaru, realni brojevi se predstavljaju na širini od 10 bita u formatu '''seeeemmmmm''', gde je '''s''' predznak broj…)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

Питања

1. питање

На неком рачунару, реални бројеви се представљају на ширини од 10 бита у формату сееееммммм, где је с предзнак броја, ееее су битови експонента у коду са вишком 7 и ммммм су бити нормализоване мантисе са скривеним битом (1≤М<2). Цели бројеви се представљају на ширини од 8 бита у комплементу двојке. Нека се у целобројној локацији А налази број чија је представа 8216, док се у реалној локацији Б налази број чија је вредност 13.2510. Како на датом рачунару изгледа представа броја који је резултат операције А + Б? Сва заокруживања се обављају према правилима АНСИ/ИЕЕЕ стандарда за реалне бројеве.

Поставка

Треба сабрати два реална броја. За почетак претворимо оно што нам је дато у реалне бројеве по формату.

  • Број бити експонента је к = 4
  • Вишак (ИЕЕЕ) је в = 24-1-1 = 7
  • Број бити мантисе је п = 5
  • Мантиса је ИЕЕЕ формата 1.xxxxx

Број А

8 бита, комплемент 2, дакле последњи бит одређује знак. А = 8216 = 1000 0010. Број је очигледно негативан. Комплементирамо да извучемо вредност. А = - 111 1110 = -126.

Треба нормализовати овај број да би стао у формат мантисе. 111 1110 => 1.11 1110. Померањем улево за 6 места добијамо број Аф = - 1.111110 * 26. Експонент Е = 6. Подвлачимо мантису: MА = 11111. Овде није било заокруживања (правило 1). Тако да је број у запису -1.11111 * 26.

Број Б

Б = 13.25. Претварамо одвојено цели и децимални део. 1310 = 11012 0.2510 = 0.012 Спојимо и добијемо 1101.01. Нормализујемо тако да стане у формат мантисе померањем зареза улево. 1.10101 * 23. Експонент је Е = 3. Број Бф = 1.10101 * 23.

Сабирање

Број Б се доводи на већи експонент, при томе се заокружује мантиса (правило 2). Бф = 1.10101 * 23 = 0.00110101 * 26 = 0.00111 * 26.

Очекујемо негативан број јер је |А|>|Б|. Одузимамо реалне бинарне бројеве: Аф + Бф = 0.00111 * 2 6 - 1.11111 * 26 = -(1.11111 * 26 - 0.00111 * 2 6) = - 1.11000 * 26.

Репрезентација

Наш број је - 1.11000 * 26. Знак је - па је бит с 1. 1 ееее ммммм.

Експоненту додајемо померај (вишак). е = Е + в = 6 + 7 = 13 = 11012. 1 1101 ммммм.

Мантису препишемо 1 1101 11000

Претворимо у хеx број: 0011 1011 1000 = 3Б8.