Denkende Machines -- Computers, rekenen, redeneren - CWI
Denkende Machines -- Computers, rekenen, redeneren - CWI
Denkende Machines -- Computers, rekenen, redeneren - CWI
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2.2. BINAIR REKENEN MET NATUURLIJKE GETALLEN 41<br />
Figuur 2.8: Implementatie van een schakeling voor het bij elkaar optellen van twee bytes.<br />
som<br />
overdracht<br />
gebruik acht volle optelschakelingen, en zorg dat er een 0 signaal gaat naar de overdracht-in<br />
poort van de eerste: zie Figuur 2.8.<br />
De overdracht-uit van de eerste opteller is de overdracht-in van de tweede, en zo verder, en<br />
de overdracht-uit van het geheel is de overdracht-uit van de laatste opteller. Als je meteen twee<br />
of vier bytes tegelijk wilt verwerken: gebruik 16 of 32 optellers, en klaar is Kees. Als je weet<br />
dat soort schakelingen meteen in het silicium wordt gebakken, zie je dat propositielogica alles<br />
te maken heeft met microchip ontwerp.<br />
De optelschakeling die we hierboven hebben uiteengezet is niet de meest efficiënte schakeling<br />
voor optellen. Bij het be<strong>rekenen</strong> van de overdracht stroomt de informatie van links naar rechts<br />
door het circuit, en voor, bij het optellen van twee getallen a7a6a5a4a3a2a1a0 en b7b6b5b4b3b2b1b0,<br />
de optelling van bits ai en bi ter hand kan worden genomen, moet worden gewacht op het resultaat<br />
van de overdracht van de optelling van ai−1 en bi−1. Met wat ingewikkelder schakelingen valt<br />
dit nog wel iets te verbeteren.<br />
2.2.4 Schakelingen voor Vermenigvuldigen<br />
Vermenigvuldigen van twee niet-negatieve gehele getallen x en y kan worden gereduceerd tot<br />
herhaald optellen. Immers,<br />
x × y = x<br />
<br />
+ ·<br />
<br />
· · + x<br />
<br />
.<br />
y maal<br />
Een en ander betekent dat we voor vermenigvuldiging strikt genomen geen aparte schakeling<br />
nodig hebben. Aparte schakelingen ontwerpen en implementeren voor operaties zoals vermenigvuldigen<br />
maakt het <strong>rekenen</strong> echter wel veel efficiënter.<br />
0<br />
in1<br />
in2