Sunday, June 12, 2011

HW: Radova mriezka

Zobrazenie cisel v pocitaci je do limitovane rozsahom registrov,  pamatovych miest atd. Preto tu mame radovu mriezku, ktora nam urcuje format zobrazitelnych cisel, t.j. urcuje najvysi (n) a najnizsi rad (m). Dovodom pre radovu mriezku je teda "humanny zapis". Dolezite je tu si uvedomit, ze napr. procesor pracuje s registrami, ktore maju velmi obmedzenu kapacitu a tym padom aj ciselny rozsah ale my potrebujeme do toho registru nejako nasukat cisla a musime vediet, co sa tam vojde.


Radova mriezka ma

  • dlzkupredstavuje pocet radov obsiahnutych v mriezke, teda l = n + 1 + m 
  • jednotku
    predstavuje najmensie cislo zobrazitelne v mriezke, epsilon = z^-m
  • modul
    Predstavuje najmensi celistvy nasobok, ktory uz zobrazitelny nie je, teda z = z^(n + 1)
Ak z = 2 a n = 2 a m = 0, tak dlzka mriezky je 3. Nakreslime si 3 okienka. Jednotkou je cislo 1 a modulom je 8 

                      2      1     0
cislo            |  1   |  1  |  1  |    =  7
jednotka      |  0   |  0  |  1  |    =  1
modul      1  |  0   |  0  |  0  |    =  8


Pokial vykonavame nejake operacie s cislami v radovej mriezke, tak sa da predpokladat, ze to budeme chciet zobrazit znovu v radovej mriezke. To snad nie je problem, az pokial cislo nepresiahne radovu mriezku a teda nie je zobrazitelny v radovej mriezke. V takom pripade mame par moznosti, ako s tym nalozit, ale dochadza k chybam, ako strata presnosti, pripadne overflow. Overflow znamena, ze sme presiahli radovu mriezku o nejaky ten rad (z n=2 chceme spravit n=3). Overflow je zavaznou chybou.
  • zaokruhlenie
    • s preferenciou parneho cisla
      t.j., cislo zaokruhlime smerom hore, ak je cislo parne a zaroven vacsie ako 5
    • s preferenciou vacsieho cisla
      cislo zaokruhlime smerom hore, ak je cislo vacsie alebo rovne 5
    • dole, t.j. orezeme cislo 
    • hore
      tak, ako ho pozname zo zakladnej skoly , ale len smerom hore, inak rezeme :)
  • rozsirovanie/skracovanie 
    ak napriklad mame n = 2 a m = 2, tak z toho mozme spravit n = 3 a m = 1, alebo n = 1 a m = 3