Eindopdracht - binair rekenen

Binair rekenen

Zoals je weet werken computers met eentjes en nulletjes. Eén zo'n eentje of nulletje noemen we een bit. En 8 bits samen zijn een byte.

Ieder teken kunnen we weergeven als één byte. Bekijk maar eens de tabel met ASCII-codes op Wikipedia:

https://nl.wikipedia.org/wiki/ASCII_(tekenset)

In de tabel zie je dat de hoofdletter A wordt vertegenwoordigd door de decimale waarde 65 en de binaire waarde is 10000001. Om een binaire waarde om te rekenen naar een decimale waarde ga je als volgt te werk. Als voorbeeld nemen we de waarde 10000001.

We beginnen bij de laatste bit. Als deze aan staat vermenigvuldigen we 1 met 20 en dat levert 1 op (raar maar waar, ieder getal tot de macht 0 is gelijk aan 1). Als de bit niet aan staat vermenigvuldigen we 20 met 0 en dat geeft natuurlijk 0 als uitkomst.
We gaan door met de voorlaatste bit. Als deze aan staat vermenigvuldigen we 1 met 21 en dat levert 2 op. Als de bit niet aan staat vermenigvuldigen we 21 met 0 en dat geeft natuurlijk 0 als uitkomst.
Zo werken we steeds verder naar links.

0 1 0 0 0 0 0 1
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
0 64 0 0 0 0 0 1

 

We tellen vervolgens alle waarden uit de onderste rij bij elkaar op: 64 + 1 = 65.

Nog een voorbeeld

1 1 0 1 0 1 0 0
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
128 64 0 16 0 4 0 1

 

We tellen weer alle waarden uit de onderste rij bij elkaar op: 128 + 64 + 16 + 4 = 212.

Zonder tabel kun je vrij snel bepalen wat de hoogste waarde is die we met één byte kunnen maken. Alle bits staan dan aan dus we tellen op 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255.

 

Opdracht

Je gaat nu een rekenmachine maken voor de Micro:Bit, waarmee de gebruiker een binair getal kan omrekenen naar een decimale waarde. Door op A te drukken wordt een 0 aan de binaire waarde toegevoegd en door op B te drukken een 1.

De gebruiker kan maximaal 8 bits opgeven (dus 1 byte). Door tegelijk op A en B te drukken wordt de binaire waarde omgerekend naar de decimale waarde en de decimale waarde wordt weergegeven op de Micro:Bit.

Als de maximum lengte is bereikt moet een Sad Face worden weergegeven als de gebruiker op A of B drukt.

 

Lever je uitwerking als tekstbestand in Natschool in met als naam bin_dec.py.

 

Voor de echte kanjers is er nog een mooie uitbreiding. Door te schudden wordt de binaire waarde omgerekend naar een hexadecimale weergave. Als je deze weet op te lossen mag je jezelf tot de echte goeroes van de Micro:Bit rekenen.

 

HEEL VEEL SUCCES.