BI-JPO (Jednotky počítače) B. Sčítáníaodčítání c doc. Ing. Alois Pluháček, CSc. 2010 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Evropský sociální fond Praha& EU: Investujeme do vaší budoucnosti
B. Sčítání,odčítání číselné soustavy a řádová mřížka sčítání a odčítání racionálních a celých čísel úplná sčítačka poloviční sčítačka sčítačka s postupným šířením přenosu sčítačka s predikcí přenosů sčítání v rámci řádové mřížky odčítačka převod odčítání na sčítání doplňkový pseudokód BI-JPO c A. Pluháček 2010
řádová mřížka n... nejvyššířád m... nejnižšířád A a n a n 1... a 0, a 1... a m A=a n z n + a n 1 z n 1 +...+a 0 + a 1 z 1... a m z m z... základčíselnésoustavy Z= z n+1 modulřádovémřížky není zobrazitelný!!! ε=z m jednotkařádovémřížky nejmenší kladné zobrazitelné číslo zobrazitelnáčísla A: 0 A=k ε < Z,kde kjeceléčíslo BI-JPO B 1 c A.Pluháček 2010
ε <1? A+B C? sčítání racionálních čísel A = A/ε=A z m jeceléčíslo Př.: z=10, Z=10=10 n+1, ε=0,01=10 m n=0, m=2 (neboli m= 2) A=1,23 A =1,23 100=123 A z m = A m posuvommíst,ato vlevo vůči řádové čárce (nebořádovéčárkyvpravo vzápise A) } 1. A A = A/ε B B odstranění řádové čárky = B/ε 2. C = A + B 3. C C= C ε vrácenířádovéčárky Př.: 1,23+4,56=? 1,23 123, 4,56 456 123+456=579 579 5,79 BI-JPO B 2 c A.Pluháček 2010
sčítání a odčítání racionálních a celých čísel sčítání racionálních čísel sčítání celých čísel analogicky: odčítání racionálních čísel odčítání celých čísel Dále bude uvažováno pouze sčítání a odčítání celých čísel ve dvojkové soustavě: z=2 ε=1 a i bit1.sčítance Avřádu i b i bit2.sčítance Bvřádu i s i bitsoučtu Svřádu i p i přenosdořádu i q i přenoszřádu i přenos [carry] pozn.: Index i bude někdy vypouštěn. BI-JPO B 3 c A.Pluháček 2010
úplná sčítačka a b p q s 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 s = a b p= = abp+abp+ + abp+abp q=m 3 (a, b, p)= = ab+ap+bp= = ab ap bp= = ab+(ap bp) BI-JPO B 4 c A.Pluháček 2010
poloviční sčítačka poloviční sčítačka(půlsčítačka) a b q s 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 s = a b = ab+ab q = a b poloviční sčítačky úplná sčítačka BI-JPO B 5 c A.Pluháček 2010
sčítačka s postupným šířením přenosu S= A+B+ p 0 q n Z n=3 Z=16 A a 3 a 2 a 1 a 0 B b 3 b 2 b 1 b 0 S s 3 s 2 s 1 s 0 p i+1 = q i BI-JPO B 6 c A.Pluháček 2010
sčítačka s predikcí přenosů (angl. carry look-ahead adder) q= ab+ap+bp } a=1ab=0nebo q= p!vustálenémstavu! a=0ab=1 zpoždění se kumulují frekvence hodinových pulsů P i = a i b i G i = a i b i srov. výstupy půlsčítačky! přenos prochází řádem i přenosvřádu ivzniká generujesevněm q 0 = p 1 = G 0 + P 0 p 0 q 1 = p 2 = G 1 + P 1 p 1 q 1 = p 2 = G 1 + P 1 G 0 + P 1 P 0 p 0 q 2 = p 3 = G 2 + P 2 G 1 + P 2 P 1 G 0 + P 2 P 1 P 0 p 0 atd. pozn.:alternativnělzepoužít P i = a i + b i BI-JPO B 7 c A.Pluháček 2010
sčítačka s predikcí přenosů ii predikce: p 1 = G 0 + P 0 p 0 p 2 = G 1 + P 1 G 0 + P 1 P 0 p 0 p 3 = G 2 + P 2 G 1 + P 2 P 1 G 0 + P 2 P 1 P 0 p 0 p 4 = G 3 + P 3 G 2 + P 3 P 2 G 1 + P 3 P 2 P 1 G 0 + + P 3 P 2 P 1 P 0 p 0 BI-JPO B 8 c A.Pluháček 2010
sčítačka s predikcí přenosů iii sčítačka s predikcí přenosů na bázi půlsčítaček BI-JPO B 9 c A.Pluháček 2010
sčítání v rámci řádové mřížky Výstupsčítačky: S= A+B+ p 0 q n Z Nechť p 0 =0(nebopůlsčítačkamístoúplnésčítačkyvřádu0): S= A+B q n Z Sseod A+Blišíonásobek Z S A+B (mod Z) kongruence(modulo Z) grafické znázornění obdoba ciferníku na hodinách: 0101+0100=01001 1001 BI-JPO B 10 c A. Pluháček 2010
sčítání v rámci řádové mřížky ii 0101+1110=10011 0011 průchodnulou přenosznejvyššíhořádu q n =1 v tomto případě(sčítání čísel bez znaménka): q n =1 A+B Z (Z=10000 2 =16 10 ) q n =1 přeplnění(přetečení) překročenírozsahu obecně však:!!! přenos přeplnění(přetečení)!!! důležitý pojem: přeplnění [overflow] BI-JPO B 11 c A. Pluháček 2010
úplná odčítačka a b v u r 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 odčítačka r = a b v= = abv+abv+ abv+abv u== ab+av+bv v i u i výpůjčkaprořád i výpůjčkazřádu i atd. podobnějakousčítání výpůjčka [borrow] ÒÙToto řešení je rozumné jenom v případě, že!?! není realizována sčítačka. ÒÙ Totořešenítedyobvyklerozumnénení! rozumné řešení: přidání vhodných obvodů ke sčítačce a převedení odčítání na sčítání BI-JPO B 12 c A. Pluháček 2010
převod odčítání na sčítání A B A+(Z B) (mod Z) BI-JPO B 13 c A. Pluháček 2010
převod odčítání na sčítání ii Jaknajíthodnotu Z B? X= n x i z i x i 0, z 1 i=0 X max = n i=0 (z 1)z i = n+1 j=1 z j n i=0 z=2: X max =11...11 2 = Z 1 Z=11...11 2 +1 Z B=11...11 2 B+1 Z B= B+1 z i = z n+1 1= Z 1 B...negacevšechbitů...+1Æhorkájednička [hotone] pozn.: B=0 Z B = Z 0 (mod Z) B+1=11...11 2 +1=100...00 2 BI-JPO B 14 c A. Pluháček 2010
převod odčítání na sčítání iii A a 3 a 2 a 1 a 0 B b 3 b 2 b 1 b 0 R r 3 r 2 r 1 r 0 R=A+(Z B) q n Z= A B +(1 q n ) Z R=A B + q n Z 0 R < Z q n =1 R=A B 0 q n =0 R=A B+Z < Z A B <0 q n =1 A B R=A B q n =0 A < B R=Z (B A) BI-JPO B 15 c A. Pluháček 2010
doplňkový pseudokód q n =0 q n =1 Je-li q n =0, tzn. B > A, pak R=Z (B A) B A=Z R B A=R+1 BI-JPO B 16 c A. Pluháček 2010