## Zelf maken 4: Decimaal getal omzetten naar een binair getal

Maak een programma dat een decimaal, geheel getal als invoer vraagt en zet het om naar zijn binaire equivalent.

Je hebt hiervoor 2 bewerkingen nodig: de restwaarde en een deling door 2

Dit algoritme gaat als volgt:

1. Neem een positief geheel getal
2. Zolang het getal <> 0 is, doe
3. Als bij het delen door 2 de restwaarde 1 is (het getal was oneven) schrijf dan een 1 op, anders (het getal was even) schrijf een 0 op
4. Deel het getal door 2 en ga met deze nieuwe waarde verder
5. Ga terug naar stap 1

Voorbeeld:

1. Getal = 7
2. 7 <> 0
3. Restwaarde = 1 (7 is oneven): schrijf een 1 op
4. Deel 7 door 2: Dit wordt 3 en doorloop de stappen nogmaals, nu met 3
5. 3 <> 0
6. Restwaarde = 1 (3 is oneven): Schrijf een 1 op
7. Deel 3 door 2: Dit wordt 1 en doorloop de stappen nogmaals, nu met 1
8. 1 <>0
9. Restwaarde = 1 (1 is oneven): schrijf een 1 op
10. Deel 1 door 2: Dit wordt 0
11. Het getal is 0 geworden en de loop stopt. Je hebt nu, van rechts naar links: 111
12. Controle: 1 1 1 = 1*2^0 + 1 * 2^1 + 1*2^2 = 1 +2 + 4 = 7.
13. Het klopt. Decimaal 7 = binair 1 1 1

Opbouwen in Flowgorithm:

Neem bovenstaand algoritme:

1. Neem een positief geheel getal {vraag de gebruiker om een geheel positief getal}
2. Zolang het getal <> 0 is, doe {een while-loop, als het getal 0 is, spring dan naar stap 6}
3. Als bij het delen door 2 de restwaarde 1 is (het getal was oneven) schrijf dan een 1 op, anders (het getal was even) schrijf een 0 op {een if-statement: if getal mod 2 = 0, geef als uitvoer een 0; if getal mod 2 = 1, geef als uitvoer een 1}
4. Deel het getal door 2 en ga met deze nieuwe waarde verder { getal = getal /2 of….dit is tricky: je moet met een geheel getal verder, dus dit werkt alleen als het getal even is. Wat doe je met een oneven getal op deze plek?}
5. Ga terug naar stap 1
6. Klaar. Het binaire getal is van rechts naar links gegeven, oftewel van boven naar beneden.
7. Extra: Zorg voor een mooie uitvoer van links naar rechts

Voorbeeld in Flowgorithm: DecimaalNaarBinair.fprg