De digitale vraagbaak voor het wiskundeonderwijs

home |  vandaag |  gisteren |  bijzonder |  gastenboek |  wie is wie? |  verhalen |  contact

HOME

samengevat
vragen bekijken
een vraag stellen
hulpjes
zoeken
FAQ
links
twitter
boeken
help

inloggen

colofon

  \require{AMSmath}

Logica

Full adder booleaans berekend

C_OUT = (A AND B) OR ((A⨁B) AND C) is de booleaanse berekening via waarheidstabellen. Als ik twee waarden in binaire code wil optellen, tel ik de binaire waarden bij elkaar op alsof je gewoon optelt met natuurlijke getallen. Zo bv. 1110 + 0010 = 10010, van links naar rechts met onthouden. Maar initieel is dit een zuivere booleaanse bewerking.

Mijn vraag: hoe kan ik deze optelling weergeven volgens op de booleaanse manier zoals hierboven weergegeven?

Geys F
22-1-2024

Antwoord

Printen
Je vraag kan iets duidelijker. Je eerste zin heeft het over de berekening. Welke berekening? Uit de rest van het verhaal denk ik op te maken dat het om het optellen van binaire getallen gaat en een blik op de Wikipediapagina voor Adders leert dat je eerste zin over het bepalen van het carry-bit gaat, dat had je wel even mogen vermelden want hier ontbreekt de berekening van het bijbehorende binaire cijfer van de totale som.

Het antwoord is: dat kan niet want de logische operaties leveren altijd maar één bit, en niet een rijtje bits dat je nodig hebt om een getal weer te geven.
Als je de genoemde pagina bekijkt zul je zien dat het optellen gebeurt door de twee formules, voor bit en carry-bit, te itereren; net zo vaak als het aantal bits in een register.
Je kunt voor elk cijfer en elk carry-bit een aparte waarheidstabel/formule opstellen. Zeg 8-bits: begin met de formules voor het achtste bit $s_8$ en achtste carry-bit $c_8$ (dat wordt het eventuele negende cijfer $s_9$). Die hebben als input de twee achtste cijfers ($a_8$ en $b_8$) en het zevende carry-big ($c_7$).
In die formules vervang je $c_7$ door zijn formule (met $a_7$, $b_7$, en $c_6$ erin). Nu heb je $s_7$, $c_6$, $s_8$, $c_7$, en $c_8$ in termen van $a_7$, $b_7$, $a_8$, $b_8$, en $c_6$. Vervang $c_6$ door zijn formule, en ga zo voort.
Dan heb je voor elk cijfer en elk carry-bit een Boolese formule waarin de acht cijfers van elk van de termen een rol spelen.
Dat zijn zestien variabelen, dus de waarheidstabellen hebben $2^{16}=65536$ rijen.

kphart
22-1-2024


home |  vandaag |  bijzonder |  gastenboek |  statistieken |  wie is wie? |  verhalen |  colofon

©2001-2024 WisFaq - versie 3