rekenen met systeembord
Thijs stelde deze vraag op 31 maart 2006 om 09:48.Ik ben bezig met een praktische opdracht voor natuurkunde.
hierbij willen wij met behulp van het systeembord een rekenmachine maken. De bedoeling is dat we kunnen optellen, aftrekken, vermenigvuldigen en delen.
hebben jullie hier tips over?
Reacties
Beste Thijs,
Het handigste is je getallen te representeren in het binaire stelsel; eentjes en nulletjes dus. Bijvoorbeeld 37=100111 (1*2^5 + 0*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 1*2^0)
In dat geval is optellen niet erg moeilijk: hoe telde je op de basisschool altijd op? Begin voor twee getallen (bijv. 37 en 13, dus 100111 en (00)1101) aan de rechterkant en tel die cijfers bij elkaar op (binair: 1 + 1 = 10, dus 0 opschrijven, 1 onthouden). Ga door met de cijfers links daarvan en vergeet niet welk cijfer je moest onthouden (dus 0 opschrijven, 1 + 0 + 0 = 10, dus 0 opschrijven, 1 onthouden). enz... (voor het hele voorbeeld:
100101 001101+ 10 010 1010 10010 010010 110010Hierbij zijn de rode cijfers diegene die je moest onthouden.
Zo ga je dus twee getallen af, om ze bij elkaar op te tellen. Het op te schrijven getal krijg je door het XOR-element (dus 1 als één van de twee input-getallen 1 is, 0 anders) en het te onthouden getal krijg je door het AND-element. Let wel even op dat je ook de te onthouden getallen erbij moet optellen, dus dan wordt het iets anders! (het op te schrijven getal wordt nu bijvoorbeeld de [XOR van de eerste twee getallen] met het derde getal als input voor een XOR)
Voor aftrekken, vermenigvuldigen en delen gaat het eigenlijk net zo; bekijk de basisschoolmanier om het te doen en doe het dan voor de binaire getallen.
Kan je hiermee een beetje uit de voeten? Ik denk trouwens dat het erg veel werk is, maar misschien kan je je beperken tot een rekenmachine die alleen kleine getallen aankan.
Vriendelijk groet,
Melvin
Beste Thijs,
Het gaat eigenlijk weer net zo als je op de basisschool hebt geleerd:
1. zet de getallen onder elkaar
2. vermenigvuldig het laatste cijfer van het onderste getal met het hele bovenste getal
3. vermenigvuldig het één na laatste cijfer van het onderste getal met het hele bovenste getal en schuif dat één plaats op naar links (= vermenigvuldigen met 10, of binair met 2)
4. enz. tot het alle cijfers van het onderste getal gedaan zijn.
5. tel nu alle tussenantwoorden bij elkaar op.
Vermenigvuldigen is makkelijk; alleen 1 en 1 geven samen 1, de rest geeft 0. Een AND-element is dus als enig nodig. Verder moet je voor 2-bits vermenigvuldigen 4-bits kunnen optellen: 3 (hoogste getal met 2 bits) x 3 = 9 (moet in 4 bits!!!)
Groetjes,
Melvin