Talstelsels: oefenopgaven met stapsgewijze oplossingen
Ook wel: binair rekenen · hexadecimaal · talstelsels omrekenen
Gratis oefenopgaven over Talstelsels met schema’s, hints en volledig uitgewerkte oplossingen. Elke keer nieuwe waarden, op drie niveaus: binair en hex naar decimaal, two's complement, bits, bereiken en geheugen.
Gratis oefenopgaveMakkelijk
Stel de bits zo in dat het 8-bits register 0x99 bevat. Wat is de waarde N van het patroon in decimaal?
0x99
Klik op een bit om hem te wisselen tussen 0 en 1. Het vak toont je patroon als getal zonder teken, en je kunt het ook typen. Exact antwoord: een geheel getal, zonder afronden.
deel door het grondtal en lees de resten van onder naar boven
Hex ↔ binair
één hexcijfer = 4 bits
Two's complement
inverteer de bits en tel 1 op
Leer Talstelsels vanaf nul
1Wat een talstelsel is
In het dagelijks leven tel je decimaal, grondtal 10. Dat heeft tien cijfers, 0 tot 9, en elke plaats is tien keer zoveel waard als de plaats rechts ervan.
In 352 is de 3 driehonderd waard, de 5 vijftig en de 2 twee. De plaatsen zijn, van rechts, 1, 10, 100 waard.
352 = 3 · 100 + 5 · 10 + 2 · 1
Een computer slaat alles op als schakelaars die aan of uit staan. Daarom telt hij binair, grondtal 2, met alleen de cijfers 0 en 1.
Eén binair cijfer is een bit. Een groep van 8 bits is een byte.
De regel is in elk talstelsel hetzelfde: elk cijfer is zijn waarde maal een macht van het grondtal waard.
Zelftoets Wat is de 7 waard in het decimale getal 4721?
7000
700
70
7
Antwoord: 700. Van rechts geteld zijn de plaatsen 1, 10, 100 en 1000 waard. De 7 staat op de derde plaats, dus hij is 7 · 100 = 700 waard.
2Binair en hexadecimaal
In het binaire stelsel zijn de plaatsen, van rechts, 1, 2, 4, 8, 16 enzovoort waard. Elke plaats is twee keer zoveel waard als de plaats rechts ervan.
Bij een getal van 8 bits zijn de plaatsen 128, 64, 32, 16, 8, 4, 2 en 1 waard.
Om een binair getal te lezen, tel je de plaatswaarden op van elke bit die 1 is. Voor 0011 0010 is dat 32 + 16 + 2 = 50.
Lange rijen bits zijn moeilijk te lezen. Programmeurs schrijven ze vaak in plaats daarvan hexadecimaal (hex), grondtal 16.
Hex heeft 16 cijfers nodig. Het gebruikt 0 tot 9 en daarna de letters A = 10, B = 11, C = 12, D = 13, E = 14 en F = 15.
Hexplaatsen zijn, van rechts, 1, 16, 256 en 4096 waard. Een hexgetal wordt vaak geschreven met 0x ervoor, bijvoorbeeld 0x2F.
Eén hexcijfer is precies 4 bits, dus 0011 0010 is 0x32: 0011 is 3 en 0010 is 2.
Zelftoets Wat is 0x1A decimaal?
110
11
161
26
Antwoord: 26. A = 10. De plaatsen zijn 16 en 1, dus 1 · 16 + 10 · 1 = 26. De cijfers naast elkaar schrijven (110) of optellen (11) negeert de plaatswaarden. 161 gebruikt de plaatsen in de verkeerde volgorde.
3Negatieve getallen: twee-complement
Een byte waarin alle plaatsen positief zijn, slaat 0 tot 255 op. Dit heet zonder teken (unsigned).
Om negatieve getallen op te slaan, gebruiken computers het twee-complement. De enige verandering is dat de meest linkse bit −128 waard is in plaats van +128.
Dus 1000 0011 is −128 + 2 + 1 = −125. De meest linkse bit heet de tekenbit: als die 1 is, is het getal negatief.
Een twee-complementgetal van 8 bits loopt van −128 (1000 0000) tot +127 (0111 1111).
Om een negatief getal −x te schrijven, begin je met +x in binair, keer je elke bit om (0 wordt 1, 1 wordt 0) en tel je 1 op.
Voorbeeld voor −5: 5 is 0000 0101. Omgekeerd is dat 1111 1010. Er 1 bij optellen geeft 1111 1011.
Hetzelfde patroon als getal zonder teken gelezen heeft de waarde 256 − x. Voor −5 is dat 251, en 1111 1011 is inderdaad 128 + 64 + 32 + 16 + 8 + 2 + 1 = 251.
Zelftoets Het 8-bitspatroon 1111 1111 slaat een twee-complementgetal op. Wat is de waarde?
255
−127
−128
−1
Antwoord: −1. −128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = −1. 255 is de lezing zonder teken. −127 ontstaat door de eerste bit als minteken voor 111 1111 te behandelen.
4De methode stap voor stap
Binair of hex naar decimaal:
Schrijf de plaatswaarde onder elk cijfer: machten van 2 voor binair, machten van 16 voor hex, beginnend met 1 rechts.
Vervang bij hex elke letter door zijn waarde: A = 10 tot en met F = 15.
Vermenigvuldig elk cijfer met zijn plaatswaarde en tel alles op.
Twee-complement:
Om een patroon te lezen, geef je de meest linkse bit de waarde −128 (bij 8 bits) en tel je de plaatswaarden van alle 1-bits op.
Om −x te schrijven, schrijf je +x in 8 bits, keer je elke bit om en tel je 1 op.
De waarde van dat patroon zonder teken is 256 − x. Gebruik dat om je bits te controleren.
Bits, bereiken en geheugen:
n bits geven 2ⁿ verschillende patronen.
Zonder teken slaan ze 0 tot 2ⁿ − 1 op. In twee-complement slaan ze −2ⁿ⁻¹ tot 2ⁿ⁻¹ − 1 op.
Om k items een eigen code te geven, zoek je de kleinste b met 2b ≥ k.
Voor geheugen vermenigvuldig je het aantal items met de bits per item, en deel je dan door 8 voor bytes en door 1024 voor KiB.
M = breedte × hoogte × bits per pixel / 8 / 1024 (KiB)
5Een uitgewerkt voorbeeld
Volg elke stap. Probeer de volgende stap te voorspellen voordat je hem opent.
Uitgewerkt voorbeeld
Het 8-bitspatroon 1011 0110 slaat een geheel getal met teken op in twee-complement. Wat is de waarde N in decimaal?
1
Schrijf de plaatswaarden op
In twee-complement is de meest linkse plaats −128 waard. De andere plaatsen zijn 64, 32, 16, 8, 4, 2 en 1.
2
Kijk naar de tekenbit
De meest linkse bit is 1, dus het getal is negatief.
3
Tel de 1-bits op
De 1-bits staan op de plaatsen −128, 32, 16, 4 en 2.
N = −128 + 32 + 16 + 4 + 2 = −74
4
Controleer met de waarde zonder teken
Gelezen zonder teken is het patroon 128 + 32 + 16 + 4 + 2 = 182.
Voor een negatief getal is de waarde zonder teken 256 − x, dus x = 256 − 182 = 74. Dat geeft opnieuw N = −74.
5
Controleer door om te keren
Keer 1011 0110 om tot 0100 1001 en tel er 1 bij op tot 0100 1010.
0100 1010 is 64 + 8 + 2 = 74. Het oorspronkelijke patroon is dus −74.
Antwoord
N = −74
6Veelgemaakte fouten
Vergeten 1 op te tellen na het omkeren van de bits. Je komt er één te laag uit.
Een twee-complementpatroon lezen als getal zonder teken, bijvoorbeeld 1111 1111 als 255 in plaats van −1.
De tekenbit behandelen als een minteken voor de andere bits. In twee-complement is hij −128 waard.
De plaatsen in de verkeerde volgorde geven. De plaats die 1 waard is, staat altijd rechts.
A = 11 gebruiken in hex. De letters beginnen bij A = 10.
Bits en bytes door elkaar halen bij geheugenvragen. Deel het aantal bits door 8.
Zelftoets Wat is −5 als 8-bits twee-complementpatroon?
0000 0101
1000 0101
1111 1010
1111 1011
Antwoord: 1111 1011. 5 is 0000 0101. Omkeren geeft 1111 1010 en er 1 bij optellen geeft 1111 1011. 1111 1010 vergeet 1 op te tellen, en 1000 0101 zet een minteken voor 5.
7Hoe tentamenvragen eruitzien
Makkelijk: binair en hex naar decimaal. Reken een binair getal van 8 bits of een hexgetal van 3 cijfers om naar decimaal.
Gemiddeld: twee-complement. Lees de waarde van een 8-bitspatroon met teken, of schrijf een negatief getal als patroon en geef zijn waarde zonder teken.
Moeilijk: bits, bereiken en geheugen. De grootste of meest negatieve waarde die in n bits past, het aantal bits dat nodig is voor k codes, of het geheugen dat een afbeelding inneemt.
Voorbeeld van een moeilijke vraag: een afbeelding van 256 × 256 met 24 bits per pixel neemt 256 · 256 · 24 / 8 / 1024 = 192 KiB in.
Zelftoets Wat is het kleinste aantal bits waarmee 375 items een eigen code krijgen?
188
512
8
9
Antwoord: 9. 2⁸ = 256 is te weinig codes, 2⁹ = 512 is genoeg, dus 9 bits. 512 is het aantal codes, niet het aantal bits.
Zet het hexadecimale getal 0x2BE om naar decimaal. Bereken N.
0x2BEA = 10 … F = 15
Gevraagd: N
Hints tonen
Hexadecimale posities zijn van rechts 1, 16, 256, 4096 waard.
Vervang letters door hun waarde (A = 10 … F = 15), vermenigvuldig met de plaatswaarde en tel op.
2 = 2, B = 11, E = 14.
Toon het antwoord en de stapsgewijze oplossing
Positionele talstelsels: elk cijfer is zijn waarde maal een macht van het grondtal waard. Binair zijn de posities 1, 2, 4, 8, 16, … waard, hexadecimaal 1, 16, 256, …, met A–F voor 10–15. In 8-bits two's complement is het meest linkse bit −128 waard in plaats van +128; zo worden negatieve getallen opgeslagen.
Elk cijfer met zijn plaatswaarde vermenigvuldigen
2·256 + 11·16 + 14·1 = 702
Antwoord
0x2BE = 702
Voorbeeld 2Gemiddeld
Stel de bits zo in dat ze −45 opslaan in 8-bits tweecomplement. Wat is de waarde U van het patroon, gelezen als getal zonder teken?
N = −458 bit
Gevraagd: U
Hints tonen
Schrijf 45 binair, keer elke bit om en tel dan 1 op.
45 = 0010 1101₂.
Als getal zonder teken is het patroon gelijk aan 256 + N.
Toon het antwoord en de stapsgewijze oplossing
Bits instellen: elke bit is een macht van twee waard (128, 64, …, 1). Eén hexadecimaal cijfer is precies vier bits, en in 8-bits tweecomplement is de meest linkse bit −128 waard. Bitsgewijze bewerkingen werken op elke bitpositie apart.
Omkeren en één optellen
45 = 0010 1101
omgekeerd: 1101 0010
+1 → 1101 0011
Lezen zonder teken
1101 0011₂ = 256 − 45 = 211
Antwoord
U = 211
Voorbeeld 3Moeilijk
Stel de bits in op het 8-bits resultaat van 0111 0001 >> 3. Wat is de waarde R van het resultaat in decimaal?
0111 0001>> 3
Gevraagd: R
Hints tonen
Naar rechts schuiven met 3 verplaatst elke bit 3 plaatsen naar rechts; bits die rechts uit beeld vallen gaan verloren en links komen nullen binnen.
Werk één bitpositie tegelijk af, van links naar rechts.
De eerste vier bits van het resultaat zijn 0000.
Toon het antwoord en de stapsgewijze oplossing
Bits instellen: elke bit is een macht van twee waard (128, 64, …, 1). Eén hexadecimaal cijfer is precies vier bits, en in 8-bits tweecomplement is de meest linkse bit −128 waard. Bitsgewijze bewerkingen werken op elke bitpositie apart.
Bit voor bit
Naar rechts schuiven met 3 verplaatst elke bit 3 plaatsen naar rechts; bits die rechts uit beeld vallen gaan verloren en links komen nullen binnen.
0111 0001 >> 3
= 0000 1110
Waarde van het resultaat
0000 1110₂ = 14
Antwoord
R = 14
Vragen en antwoorden
Talstelsels: wat is het?
In het dagelijks leven tel je decimaal, grondtal 10. Dat heeft tien cijfers, 0 tot 9, en elke plaats is tien keer zoveel waard als de plaats rechts ervan.
In 352 is de 3 driehonderd waard, de 5 vijftig en de 2 twee. De plaatsen zijn, van rechts, 1, 10, 100 waard.
Talstelsels: hoe los je de opgaven stap voor stap op?
Positionele talstelsels: elk cijfer is zijn waarde maal een macht van het grondtal waard. Binair zijn de posities 1, 2, 4, 8, 16, … waard, hexadecimaal 1, 16, 256, …, met A–F voor 10–15. In 8-bits two's complement is het meest linkse bit −128 waard in plaats van +128; zo worden negatieve getallen opgeslagen.
Talstelsels: wat oefen je?
Makkelijk: binair en hex naar decimaal
Gemiddeld: two's complement
Moeilijk: bits, bereiken en geheugen
Elke opgave heeft nieuwe waarden, zodat je de methode leert in plaats van een antwoord. Kom je vast te zitten? Open eerst een kleine hint en de volledige uitleg pas als je die nodig hebt.
Zo werkt het oefenen
Elke opgave heeft nieuwe waarden, zodat je de methode leert in plaats van een antwoord.
Kom je vast te zitten? Open eerst een kleine hint en de volledige uitleg pas als je die nodig hebt.
Je voortgang, fouten en bewaarde opgaven blijven bewaard, zodat je vóór het tentamen kunt herhalen.