Binaire getallen

Het binaire talstelsel is een manier om getallen voor te stellen waarbij we enkel de cijfers 0 en 1 gebruiken. In het tiendelig talstelsel dat we normaal gebruiken, kun je elk getal als volgt schrijven:

$$ 1337 = 1 \times 10^3 + 3 \times 10^2 + 3 \times 10^1 + 7 \times 10^0. $$

Over het algemeen, om een getal \(n\) te schrijven in een basis \(b\), moeten we getallen \(n_0, \dots, n_k\) tussen 0 en \(b-1\) vinden zodat

$$ n = b^kn_k + b^{k-1}n_{k-1} + \dots + b_1n_1 + n_0. $$

De voorstelling van \(n\) in basis \(b\) is dan \([n_k, \dots, n_0]\). De voorstelling van 1337 in basis 10 is \([1, 3, 3, 7]\). De voorstelling ervan in basis 2 (het binaire talstelsel) is \([1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1]\) aangezien

$$ 1337 = 2^{10} + 2^8 + 2^5 + 2^4 + 2^3 + 2^0. $$

De omzetting van een getal \(n\) naar binaire voorstelling gebeurt als volgt:

  1. Bepaal de rest van \(n\) bij deling door twee. Dit is het volgende getal in de binaire voorstelling van \(n\).
  2. Deel \(n\) door twee via gehele deling (de operator // in Python). Als \(n = 0\) kun je stoppen; anders ga je verder vanaf stap 1.

Voor 1337 geeft dit bijvoorbeeld

  1. 1337 % 2 = 1.
  2. 1337 // 2 = 668. 668 % 2 = 0.
  3. 668 // 2 = 334. 334 % 2 = 0.
  4. 334 // 2 = 167. 167 % 2 = 1.
  5. 167 // 2 = 83. 83 % 2 = 1.
  6. 83 // 2 = 41. 41 % 2 = 1.
  7. 41 // 2 = 20. 20 % 2 = 0.
  8. 20 // 2 = 10. 10 % 2 = 0.
  9. 10 // 2 = 5. 5 % 2 = 1.
  10. 5 // 2 = 2. 2 % 2 = 0.
  11. 2 // 2 = 1. 1 % 2 = 1.
  12. 1 // 2 = 0. Stop.

Hieruit bekomen we de voorstelling [1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1].

Opgave

Schrijf een programma dat een lijst van getallen inleest en de binaire voorstelling van elk van deze getallen teruggeeft.

Voorbeeld

Invoer:

0
1
2
4
256

Uitvoer:

0
1
10
100
100000000

Indienen

Evaluatie


Uitvoerconsole