OBSAH WEBU
ČTĚTE!
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
temata:09-reprezentace_cisel:main [2011/05/04 10:45] jasho [Delenie] |
temata:09-reprezentace_cisel:main [2011/06/02 09:46] (aktuální) george [Zobrazenie čísel v pohyblivej rádovej čiarke] |
||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ~~ODT~~ | ||
+ | |||
====== 09 - Reprezentácia čísiel a základné dvojkové aritmetické operácie v počítači ====== | ====== 09 - Reprezentácia čísiel a základné dvojkové aritmetické operácie v počítači ====== | ||
Řádek 134: | Řádek 136: | ||
---- | ---- | ||
- | 17<sub>10</sub> = 10001<sub>2</sub> = 10001 * 2<sup>5</sup> | + | 17<sub>10</sub> = 10001<sub>2</sub> = 0,10001 * 2<sup>5</sup> |
{{:temata:09-reprezentace_cisel:fp_17.jpeg?400|FP - 17}} | {{:temata:09-reprezentace_cisel:fp_17.jpeg?400|FP - 17}} | ||
Řádek 182: | Řádek 184: | ||
{{:temata:09-reprezentace_cisel:04_cele_cisla_aritmetika_delenie_02.png|}} | {{:temata:09-reprezentace_cisel:04_cele_cisla_aritmetika_delenie_02.png|}} | ||
+ | |||
+ | * zavedieme skratky: | ||
+ | * D - delenec | ||
+ | * d - deliteľ | ||
+ | * Q - podiel | ||
+ | * <m>q_i</m> - i-ty bit podielu | ||
+ | * <m>R_i</m> - i-ty zbytok | ||
+ | |||
+ | * v praxi sa posúva dielčí zbytok vľavo a deliteľ je v pevnej polohe | ||
+ | * keď je deliteľ väčší ako <m>2R_i</m> | ||
+ | * potom <m>q_(n-i) = 0</m> | ||
+ | * inak <m>q_(n-i) = 1</m> | ||
+ | |||
+ | {{:temata:09-reprezentace_cisel:delenie_posun_zbytku.png|}} | ||
+ | |||
+ | === Reštaurácia nezáporného zbytku === | ||
+ | |||
+ | * v praxi sa porovnávanie založené na komparátoroch nepoužíva | ||
+ | * odčítanie sa prevedie skúšobne, teda keď <m>2R_i - d</m> je menšie ako: | ||
+ | * potom <m>q_(n-i) = 0</m> | ||
+ | * inak <m>q_(n-i) = 1</m> | ||
+ | * ak je <m>q_(n-i) = 0</m> výsledok skúšobného odčítania nie je správny, treba pričítať d - reštaurácia nezáporného zvyšku | ||
+ | * postup bez reštaurácie: | ||
+ | * v každom kroku prevádzame len jednu operáciu: | ||
+ | * keď je <m>q_(n-i) = 1</m>, použijeme: <m>R_(i+1) = 2R_i - d</m> | ||
+ | * keď je <m>q_(n-1) = 0</m>, použijeme: <m>R_(i+1) = 2R_i + d</m> | ||
+ | * v každom kroku teda len pričítame alebo odćítame, nemusíme robiť zbytočne 2 operácie | ||
+ | |||
+ | {{:temata:09-reprezentace_cisel:delenie_bez_restauracie.png|}} | ||
+ | |||
+ | === Delenie SRT === | ||
+ | |||
+ | * algoritmus pre delenie znamienkových čísel | ||
+ | * vykonávané operácie sa pre každý krok určujú podľa najvyšších bitov priebežného zbytku | ||
+ | * pre demonštráciu - odhad podľa 3 bitov, ale pre niektoré hodnoty D a d postup zlyháva | ||
+ | |||
+ | {{:temata:09-reprezentace_cisel:delenie_srt_priklad.png|}} | ||
+ | |||
+ | * v praxi sa odhaduje podľa viacerých bitov - napr. Pentium - podľa 7 bitov priebežného zbytku a 5 bitov deliteľa | ||
+ | * obvodová realizácia - sekvenčná delička, odhad podľa 3 bitov priebežného zbytku: | ||
+ | * ak má delenec aj deliteľ k ľavostranných núl, posunú sa obsahy registrov PA aj B o k bitov vľavo | ||
+ | * ak je <m>p_n = p_(n-1) = p_(n - 2)</m>, potom <m>q_(n-i) = 0</m> - posun registra PA o 1 bit vľavo | ||
+ | * ak je <m>p_n = 0</m>, potom <m>q_(n-i) = 1</m>, odčítanie PA - B, posun registra PA o 1 bit vľavo | ||
+ | * ak je <m>p_n = 1</m>, potom <m>q_(n-i) = -1</m>, pričítanie PA + B, posun registra PA o 1 bit vľavo | ||
+ | * ak je koncový zbytok menší ako nula, pričítame P + B a odčítame Q - 1 | ||
==== Násobenie ==== | ==== Násobenie ==== |