Posted By: Hawk (Wanna be pinetree) on 'CZprogram' Title: Re: Fixpointova matematika ;-) Date: Fri Mar 21 12:18:01 1997 > Caute ! > > Potreboval bych vedet neco o subj. Zatim pouze vim, ze se realne cislo > da napr. zapsat do dvou 16bit. promennych, pricemz v prvni je cela cast a > vdruhe cast desetinna. Jdou takto zapsana cisla scitat asi takhle ????: Cely trik fixpointove aritmetiky je v nahrazeni realnych cisel celymi. Pri tom se samozrejme neco ztrati, konkretne tato cisla maji omezenou presnost (pocet des. mist) a hlavne omezeny interval nejmensiho a nejvetsiho cisla. Kdyz x chces vyjadrit pomoci 2 celych cisel (coz je jen jiny pohled na jedno cele cislo) a, b, plati: x = a+b/m, kde a je signed, b unsigned, m je velikost mnoziny vsech hodnot b pak je jasne, ze x1*y1 = (a1+b1/m)*(a2+b2/m) = a1*a2 + (a1*b2+b1*a2)/m + (b1*b2)/(m*m), pricemz posledni clen muzes rovnou zahodit, neprojevi se (je pod presnosti ulozeni cisla) tedy x1*x2 = (a1*a2) + (a1*b2+b1*a2)/m Jednodussi je to v tvem pripade dat cely do 32-bit registru a pouzit 32-bit nasobeni a brat jako vysledek jen hornich 32 bitu vysledku. > Mam li cislo 0.5 je jeho prezentace 0000:5000H nebo 0000:0005H ???? Ani jedno. 0.5 je 0000:8000H :) ..---.. ___ ..---.. Hawk ' 'o o` ` " rsvo1382@barbora.ms.mff.cuni.cz