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

Melvin op 31 maart 2006 om 16:46

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 110010 

Hierbij 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

Thijs op 04 april 2006 om 09:31
We maken gebruik van een systeembord, dus inderdaad met AND, OR, XOR en invertors etc. Het idee was om met 2-bits binaire getallen te rekenen en we hebben het optellen al af. Bedankt daarvoor. Met het vermenigvuldigen komen we alleen niet zo heel erg ver, heeft u misschien daar ook nog goede tips voor?
Melvin op 10 april 2006 om 01:52

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.

binairdecimaal0001117000101x5x00011170000000011100+28+10001135 

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

Plaats een reactie

+ Bijlage

Bevestig dat je geen robot bent door de volgende vraag te beantwoorden.

Ariane heeft vijfentwintig appels. Ze eet er eentje op. Hoeveel appels heeft Ariane nu over?

Antwoord: (vul een getal in)