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:
// in Python). Als \(n = 0\) kun je stoppen; anders ga je verder vanaf stap 1.Voor 1337 geeft dit bijvoorbeeld
1337 % 2 = 1.1337 // 2 = 668. 668 % 2 = 0.668 // 2 = 334. 334 % 2 = 0.334 // 2 = 167. 167 % 2 = 1.167 // 2 = 83. 83 % 2 = 1.83 // 2 = 41. 41 % 2 = 1.41 // 2 = 20. 20 % 2 = 0.20 // 2 = 10. 10 % 2 = 0.10 // 2 = 5. 5 % 2 = 1.5 // 2 = 2. 2 % 2 = 0.2 // 2 = 1. 1 % 2 = 1.1 // 2 = 0. Stop.Hieruit bekomen we de voorstelling [1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1].
Schrijf een programma dat een lijst van getallen inleest en de binaire voorstelling van elk van deze getallen teruggeeft.
Invoer:
0
1
2
4
256
Uitvoer:
0
1
10
100
100000000