Deleni a nasobeni na PIC

jirka j.prachar
Středa Březen 17 14:23:01 CET 2004


V dekadicke podobe potrebujete tabulku 10 x 10 nebo podprogram, ktery
umi binarne nasobit, pripadne nejakou dumyslnou kombinaci tabulky a
podprogramu. Tezko odhadnout, co je lepsi, pro dekadickou aritmetiku
jsem to nikdy realne nedelal.

Binarne je to jednodussi. Ta uplne nejjednodussi varianta je nasobeni
bit po bitu, dejme tomu mam cisla A=1001 a B=1101 a chci je vynasobit
a vysledek dat do C. Vynuluji tedy C a postupne do nej pricitam
nasobky A jednotlivymi ciframi B (coz je snadne, protoze se nasobi jen
jednickou nebo nulou, coz znamena, ze to v danem kroku bud prictu nebo
neprictu).

vynuluj C (C=0)
do C pricti 1 * A (C=1001)
C zvets o rad (C=10010)
do C pricti 1 * A (C=11011)
C zvets o rad (C=110110)
do C pricti 0 * A (C=110110)
C zvets o rad (C=1101100)
do C pricti 1 * A (C=1110101)

Tohle myslim celkem snadno intuitivne upravite i pro pripad, kdy mate
elementarni nasobeni. Pak nepostupujete po 1 bitu, ale treba po 8
bitech, jinak je to stejne.

Deleni funguje opacne. Kdyz delim A/B, tak nejdriv zvetsim B o tolik
radu, aby bylo v intervalu <A,A/2) (nebo humpolacky aby bylo vetsi nez
A). Pokud A je vetsi nebo rovno B odectu B od A a do vysledku pridam
jednicku, jinak do vysledku pridam nulu. Zmensim B o jeden rad a
opakuji a tak dale, dokud neni B stejne jako na zacatku. Pak mam ve
vysledku podil a v A zbytek.

V tomhle pripade je ponekud tezsi vyuzit elementarni deleni, ale take
to jde.

Ales Prochaska

> Takze pokud to shrnu pokud nasobim BCD tak nasobim jednotlivymi radu a podle 
> radu to pricitam spravne posunute k vysledku? Jestli ano tak jsem v podstate 
> s temi rutinami co jsem napsal na dobre ceste. A to elementarni nasobeni a 
> deleni se realizuje pres nejakou tabulku (vychazi mi ze bude mit 100 hodnot 
> to je docela dost ne) nebo tim tupym opakovanim?

> A to binarni nasobeni a deleni funguje jak?

> RadekCX

> P.S. Tu mat. knihovnu jsem si z WWW Microchipu stahnul ale nejak mi nejde 
> pod fousy.

>>
>>
>>-----P?vodn? z?silka-----
>>Od: Ales Prochaska <prochaska@alsoft.cz>
>>Komu: vicek.radek@ozjc.cpost.cz;hw-news@list.gin.cz;
>>Odesl?no: p?tek 13.12.02 13:34:54
>>V?c: Re: Deleni a nasobeni na PIC
>>
>>Nedoslo mi, jestli chcete nasobit binarni cisla (uplne jednoduche)
>>nebo dekadicka (BCD) (trochu slozitejsi). V obou pripadech je
>>algoritmus tyz a je uplne shodny s tim, ktery si pamatujete ze treti
>>tridy ZS (nasobi se postupne jednotlivymi cislicemi druheho cinitele a
>>pricita k vysledku). Bohuzel je to skoro nejrychlejsi metoda nasobeni.
>>
>>Pro deleni plati totez (5. trida ZS), jenom se daji vyuzit ruzne finty
>>jako tabulky nebo elementarni deleni, pokud jej procesor umi.
>>
>>Ales Prochaska
>>





Další informace o konferenci Hw-list