Wiskunde/Talstelsels: verschil tussen versies
Label: Ongedaan gemaakt |
|||
Regel 5: | Regel 5: | ||
Welke van de volgende rekensommen zijn juist? |
Welke van de volgende rekensommen zijn juist? |
||
1 + 1 = |
1 + 1 = je vadfer |
||
1 + 7 = |
1 + 7 = je moeder |
||
1 + 9 = |
1 + 9 = je tante |
||
1 + F = |
1 + F = je onkle |
||
10 + 3 = |
10 + 3 = je zus |
||
I + IV = |
I + IV = je oma |
||
10 + 350 = |
10 + 350 = je broer |
||
Mocht je dit voorleggen aan een willekeurig persoon, dan bestaat de kans dat hij of zij zal aangeven dat enkel de derde juist is. Nochtans kunnen ze allemaal juist zijn, mits voldoende uitleg gegeven wordt over het soort talstelsel dat gebruikt wordt. In onze (westerse) wereld werken wij echter graag met machten van tien, in ons decimaal talstelsel. Het is ook logisch, want we hebben tien vingers. |
Mocht je dit voorleggen aan een willekeurig persoon, dan bestaat de kans dat hij of zij zal aangeven dat enkel de derde juist is. Nochtans kunnen ze allemaal juist zijn, mits voldoende uitleg gegeven wordt over het soort talstelsel dat gebruikt wordt. In onze (westerse) wereld werken wij echter graag met machten van tien, in ons decimaal talstelsel. Het is ook logisch, want we hebben tien vingers. |
Versie van 21 feb 2024 10:57
Inleiding
Welke van de volgende rekensommen zijn juist?
1 + 1 = je vadfer 1 + 7 = je moeder 1 + 9 = je tante 1 + F = je onkle 10 + 3 = je zus I + IV = je oma 10 + 350 = je broer
Mocht je dit voorleggen aan een willekeurig persoon, dan bestaat de kans dat hij of zij zal aangeven dat enkel de derde juist is. Nochtans kunnen ze allemaal juist zijn, mits voldoende uitleg gegeven wordt over het soort talstelsel dat gebruikt wordt. In onze (westerse) wereld werken wij echter graag met machten van tien, in ons decimaal talstelsel. Het is ook logisch, want we hebben tien vingers.
1 + 1 = 10, is juist in het binair talstelsel. Decimaal gezien staat er nl. 1 + 1 = 2. 1 + 7 = 10, is juist in het octaal talstelsel. Decimaal gezien staat er nl. 1 + 7 = 8. 1 + 9 = 10, is juist in het decimaal talstelsel. 1 + F = 10, is juist in het hexadecimaal talstelsel. Decimaal gezien staat er nl. 1 + 15 = 16. 10 + 3 = 1, is juist bij uren. Als het nu 10 uur is en je telt er 3 uur bij, is het inderdaad 1 uur. I + IV = V, is juist bij Romeinse cijfers. Decimaal gezien staat er nl. 1 + 4 = 5. 10 + 350 = 0, is juist bij hoeken in graden: 10 + 350 = 360°. Dan ben je terug bij het begin, dus 0°.
Zonder het te weten, gebruik je standaard al een talstelsel bij het rekenen: het decimale talstelsel. Maar hoe zit het dan met de andere talstelsels? Dit stuk gaat over het gebruik van verschillende positiestelsels en hoe je kunt omrekenen van het ene naar het andere. Het gaat dus niet over Romeinse cijfers, uren of hoeken. Uren en hoeken gaan zelfs niet zozeer over talstelsels, maar over modulair rekenen (noodzakelijk bij bv. RSA en cryptografie). Voor de toepassingen van talstelsels in de informatica is een apart Wikibook voorzien.
Leesbaarheidsregels
Om in dit hoofdstuk geen verwarring te krijgen tussen de verschillende talstelsels, worden alle getallen op de plek waar het niet uit de context opgemaakt kan worden, gevolgd door het grondtal van hun talstelsel tussen (). Zo staat 10(10) voor het getal 10 in het decimale stelsel en 10(2) voor het getal 2 (eigenlijk: 2(10)), weergegeven in het binaire stelsel. In het hexadecimale stelsel is het getal 10 (10(16)) het getal 16 in het decimale stelsel (16(10)).
Verder is het gebruikelijk om, wanneer je een getal binair opschrijft, de cijfers te groeperen per 4 of per 8, om de leesbaarheid te bevorderen. In dit hoofdstuk worden ze gegroepeerd per 4.
Voorbeelden
Hoe "werkt" zo'n positiestelsel precies? Hoeveel kruisjes staan hier: XXXX? Dat zijn er vier. Normaal zal men dit aantal noteren als 4. Ook een IT'er die het hexadecimale stelsel gebruikt, schrijft voor dit aantal 4. Een computer daarentegen noteert in het binaire stelsel het aantal vier als 100? Het volgende aantal kruisjes, XXXXXXXXXXXXXXXX, is zestien. Dit aantal schrijft men gewoonlijk als 16, een IT'er in het hexadecimale stelsel echter als 10 en een computer schrijft 10000 in het binaire stelsel. Laten we dit eens bekijken aan de hand van enkele voorbeelden, om dan de algemene regels te presenteren.[1]
Het decimale talstelsel
Het decimale talstelsel is het meest gebruikte talstelsel. Dit talstelsel gebruikt tien (deca = tien) cijfers. Deze zijn:
- 0 1 2 3 4 5 6 7 8 9
Iedereen zal hieronder drieëntwintig kruisjes zien staan, genoteerd als 23. Een computer schrijft in het binaire stelsel hiervoor 10111.
XXXXXXXXXXXXXXXXXXXXXXX
Dat er 23 kruisjes staan, is gewoon een kwestie van tellen. Maar waarom schrijft men hiervoor in het decimale stelsel 23? Tijd dus voor een uitgebreide uitleg. Het tellen gebeurt zoals in een "ouderwetse" kilometerteller in de wagen of met een ouderwets kliksysteem zoals voor het tellen van bv. het aantal personen die ergens passeren:
-
Een decimale teller, waar je de volgende en de vorige cijfers ziet.
-
Een decimale handteller
-
Een telraam met het getal 1981.
Het telraam telt maar 100 kralen, maar toch kan men veel grotere getallen voorstellen. Dan wordt de eerste rij gebruikt voor het tellen van eenheden, de tweede rij voor tientallen, de derde rij voor honderdtallen,... Het getal op het telraam is dan niet 19, maar 1981.
Laten we de eerste negen kruisjes tellen.
Telvoorbeeld:
dec kruisjes 0 1 X 2 XX 3 XXX 4 XXXX 5 XXXXX 6 XXXXXX 7 XXXXXXX 8 XXXXXXXX 9 XXXXXXXXX
Tot nu toe kunnen we de aantallen kruisjes met één symbool (cijfer) aangeven. Maar bij de volgende zitten we met een probleem: in het decimale talstelsel hebben we namelijk niet één symbool om het volgende kruisje voor te stellen. We weten echter dat we verder kunnen tellen met:
dec kruisjes 10 XXXXXXXXXX 11 XXXXXXXXXX X 12 XXXXXXXXXX XX ... 19 XXXXXXXXXX XXXXXXXXX
De reden dat dit "werkt" is omdat het decimaal talstelsel een positiestelsel is. Zo zijn 12 en 21 opgebouwd uit dezelfde cijfers - nl. '1' en '2' - maar zijn 12 en 21 toch niet dezelfde getallen. De '1' bij 12 is een tiental, wat betekent dat we al één groep van 10 kruisjes hebben. Bij '21' is het tiental een '2', wat betekent dat we al twee groepen van 10 kruisjes hebben.
Als we bij ons voorbeeld 19 één kruisje erbij plaatsen, hebben we een extra groep van tien kruisjes, bij de groep die we al hadden. We hebben dus twee groepen van tien kruisjes, wat we aangeven met 20. Zo kunnen we terug verder tellen:
dec kruisjes 20 XXXXXXXXXX XXXXXXXXXX 21 XXXXXXXXXX XXXXXXXXXX X 22 XXXXXXXXXX XXXXXXXXXX XX 23 XXXXXXXXXX XXXXXXXXXX XXX
Dit tellen kunnen we verder doen tot bv. 99, wat betekent dat we 9 groepen van 10 kruisjes en een restgroepje van 9 kruisjes hebben. Als we er nu één kruisje bijplaatsen, hebben we 10 groepen van elk 10 kruisjes. Dit stellen we dan voor door het getal 100.
Het getal 162 betekent dan 1 groep van 10 keer 10 "kruisjes" (dus 10²) , 6 groepen van 10 "kruisjes" en 1 restgroep van 2 kruisjes. Of in formulevorm:
Het binaire talstelsel
Het binaire talstelsel wordt bijna niet gebruikt door de mens. De hedendaagse computers werken bijna allemaal met binaire getallen: elektriciteit of geen elektriciteit, licht of geen licht,... Dit talstelsel gebruikt slechts twee (bi = twee) cijfers:
0 1
We kunnen dezelfde methode gebruiken zoals bij het decimale talstelsel, namelijk door het tellen van kruisjes:
dec bin kruisjes 0 0 1 1 X
Je zou geneigd zijn om '2' te noteren bij XX, maar het cijfer '2' is geen geldig cijfer in het binaire talstelsel. We merken echter op dat we één groep van twee X-en hebben. Bij het tellen van XX schrijven we binair dan ook 10. Vandaar ook de uitdrukking Er zijn 10 soorten mensen: diegene die binair begrijpen en diegene die dat niet kunnen. Zo kunnen we verdertellen:
dec bin kruisjes 2 10 XX 3 11 XX X
Als we nu een kruisje toevoegen t.e.m. XXXX, dan merken we dat we één groep van twee keer twee kruisjes hebben. Dit klinkt in woorden nogal ingewikkeld, maar als getal is dit het binaire getal 100:
dec bin kruisjes 4 100 XX XX 5 101 XX XX X 6 110 XX XX XX 7 111 XX XX XX X 8 1000 XX XX XX XX 9 1001 XX XX XX XX X 10 1010 XX XX XX XX XX 11 1011 XX XX XX XX XX X ...
Het binaire getal 101 betekent dan 1 groep van 2 keer 2 "kruisjes" (dus 22), 0 groepen van 2 "kruisjes" en 1 restgroep van 1 kruisje. Of in formulevorm: . Dus 101(2) = 5(10).
Het octale talstelsel
Het octale talstelsel wordt bijna niet meer gebruikt. Dit talstelsel gebruikt acht (octo = acht) cijfers:
0 1 2 3 4 5 6 7
Telvoorbeeld:
dec oct kruisjes 0 0 1 1 X 2 2 XX 3 3 XXX 4 4 XXXX 5 5 XXXXX 6 6 XXXXXX 7 7 XXXXXXX 8 10 XXXXXXXX 9 11 XXXXXXXX X 10 12 XXXXXXXX XX 11 13 XXXXXXXX XXX 12 14 XXXXXXXX XXXX ... 15 17 XXXXXXXX XXXXXXX 16 20 XXXXXXXX XXXXXXXX 17 21 XXXXXXXX XXXXXXXX X 18 22 XXXXXXXX XXXXXXXX XX
Het hexadecimale talstelsel
Men zocht naar een manier om met één symbool verder te kunnen tellen dan 9. Zo besloot men voor het hexadecimale talstelsel om verder te tellen met de letters A, B, C, D, E en F. Binnen het hexadecimale talstelsel zijn de letters A t/m F dus cijfers. De volledige lijst van de 16 (hexadeca = 16) cijfers is dus (van klein naar groot):
0 1 2 3 4 5 6 7 8 9 A B C D E F
Opnieuw kunnen we het tellen als basis gebruiken:
dec hex kruisjes 0 0 1 1 X 2 2 XX ... 9 9 XXXXXXXXX
Nu zijn we geneigd om 10 te plaatsen bij XXXXXXXXX, maar als we hetzelfde principe gebruiken zoals bij de andere talstelsels, dan betekent de '1' van '10' dat we al één groep van 16 kruisjes hebben. De decimale 10 kunnen we hier dus niet gebruiken. Als we kijken bij de gebruikte "cijfers" van het hexadecimale talstelsel, dan merken we dat na de '9' een 'A' komt. We kunnen dus verder tellen met:
dec hex kruisjes 10 A XXXXXXXXXX 11 B XXXXXXXXXXX 12 C XXXXXXXXXXXX 13 D XXXXXXXXXXXXX 14 E XXXXXXXXXXXXXX 15 F XXXXXXXXXXXXXXX
Pas nu zijn we op het moment gekomen dat we een groep van 16 kruisjes zullen kunnen maken:
dec hex kruisjes 16 10 XXXXXXXXXXXXXXXX 17 11 XXXXXXXXXXXXXXXX X 18 12 XXXXXXXXXXXXXXXX XX ... 26 1A XXXXXXXXXXXXXXXX XXXXXXXXXX 27 1B XXXXXXXXXXXXXXXX XXXXXXXXXXX ... 32 20 XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 33 21 XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX X
Het hexadecimale getal 1A2 betekent dan 1 groep van 16 keer 16 "kruisjes" (dus 162) , 10 (=A) groepen van 16 "kruisjes" en 1 restgroep van 2 kruisjes. Of in formulevorm: . Dus 1A2(16) = 418(10).
Overzicht
Een overzicht van de bekendste talstelsels:
dec bin oct hex kruisjes 0 0 0 0 1 1 1 1 X 2 10 2 2 XX 3 11 3 3 XXX 4 100 4 4 XXXX 5 101 5 5 XXXXX 6 110 6 6 XXXXXX 7 111 7 7 XXXXXXX 8 1000 10 8 XXXXXXXX 9 1001 11 9 XXXXXXXXX 10 1010 12 A XXXXXXXXXX 11 1011 13 B XXXXXXXXXXX 12 1100 14 C XXXXXXXXXXXX 13 1101 15 D XXXXXXXXXXXXX 14 1110 16 E XXXXXXXXXXXXXX 15 1111 17 F XXXXXXXXXXXXXXX 16 10000 20 10 XXXXXXXXXXXXXXXX 17 10001 21 11 XXXXXXXXXXXXXXXXX 18 10010 22 12 XXXXXXXXXXXXXXXXXX ... 30 11110 36 1E XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 31 11111 37 1F XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 32 100000 40 20 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 33 100001 41 21 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Wat zijn talstelsels?
Een talstelsel is een systeem om getallen weer te geven in de vorm van een rij cijfers. Bij de eerder besproken talstelsels bepaalt de plaats die een cijfer in de rij inneemt hoe we de bijdrage van dat cijfer aan het getal moeten interpreteren. We spreken dan ook over positiestelsels. Alhoewel de benaming 'decimaal talstelsel' gebruikelijk is, zou 'decimaal positiestelsel' duidelijker uitleggen dat we specifiek met een positiestelsel te maken hebben.
Merk op dat alle positiestelsels talstelsels zijn, maar niet alle talstelsels zijn positiestelsels. Zo is de waarde van I in het Romeinse getal IV '1', maar zo ook in het Romeinse getal VI. Dit is niet zo voor het decimale getal 21 versus 12: bij het tweede getal heeft '1' namelijk de waarde van '10'.
Merk op:
- Er kunnen nullen vóór het daadwerkelijke getal staan zonder de waarde ervan te beïnvloeden. Zo is 1 hetzelfde als 01 en 001. Bij het decimale talstelsel is het heel ongebruikelijk om voorloopnullen te laten staan, in de andere talstelsels wordt dit soms wel gedaan (bv. bij ASCII of Wireshark).
- Alle talstelsels hebben een nul (0).
- Het grootste cijfer in een talstelsel is (grondtal - 1), omdat de nul ook meetelt als cijfer. Zo is het grootste cijfer in het decimale stelsel een 9 (decem = 10), in het octale stelsel een 7 (octo = 8) en in het binaire stelsel een 1 (bi = 2). De mogelijke cijfers komen dus altijd uit de reeks 0, 1,..., grondtal-1.
Omrekenen
Om van het ene talstelsel om te rekenen naar het andere, zijn er een aantal methoden.
Van een ander stelsel naar het decimale stelsel
Algemeen
Een natuurlijk getal x laat zich in het decimale positiestelsel uitdrukken als een reeks van termen van machten van een ander natuurlijk getal, het grondtal, a:
of
waarbij de coëfficiënten xi natuurlijke getallen zijn kleiner dan het grondtal, of nul.
In het a-tallige stelsel wordt x nu voorgesteld door de rij cijfers:
- .
De coëfficiënten xi vormen in volgorde de cijfers van het getal. Het meest linkse cijfer xk is de coëfficiënt van de hoogste macht van het grondtal, het meest rechtse x0 de coëfficiënt van de eenheden (de 0-de macht van het grondtal).
Bovenstaande formules zien er ingewikkeld uit, maar met een voorbeeld wordt alles duidelijker:
- Het decimale getal 1432 wordt met bovenstaande formule:
- In het octale stelsel, dus met grondtal 8, gebruikt men de cijfers 0, 1, ..., 7. Het getal 1432 in het octale stelsel betekent in het decimale stelsel: . Dus 1432(8)=794(10).
472(8) = ?(10)
Als voorbeeld hier het omrekenen van het octale getal 472(8) naar een decimaal getal. We nemen de volgende stappen:
- Voor het bepalen van de positie tellen we vanaf 0 en niet vanaf 1.
- Bepaal voor elke positie het gewicht als het grondtal tot de macht de positie. Bij positie 2 is het gewicht dus 82=64.
- Reken voor elk cijfer de bijdrage uit door het cijfer te vermenigvuldigen met het gewicht. Bij cijfer 4 is de bijdrage dus 4 * 64 = 256.
- Tel de bijdragen van de cijfers bij elkaar op.
De uitwerking is dus als volgt: het getal is 472(8)
Het resultaat is :
Dus 472(8) = 314(10). Merk op dat in bovenstaande uitwerking alles aan de rechterkant in het decimale talstelsel wordt uitgerekend.
472(8) = ?(10), met computeralgoritme
Bovenstaande methode wordt als mens vaak gebruikt, maar mocht je dit in een programma wensen te gieten, kan onderstaand recursief algoritme van pas komen:
- 'variabelen instellen
- in = inlezen getal
- grondtal = inlezen grondtal
- uit = meest linkse getal van in
- in = in, zonder meest linkse getal
- 'lus
- uit = uit * grondtal
- getal = meest linkse getal van in
- uit = uit + getal
- in = in, zonder meest linkse getal. Als 'in' niet leeg, naar stap 8
- 'antwoord
- output uit.
Voor het bovenstaande voorbeeld wordt dit:
- in = 472
- grondtal = 8
- uit = 4
- in = 72
- uit = 4 * 8 = 32
- getal = 7
- uit = 32 + 7 = 39
- in = 2
- uit = 39 * 8 = 312
- getal = 2
- uit = 312 + 2 = 314
- in = STOP
- Het antwoord is 314
Van het decimale stelsel naar een ander stelsel
Het omrekenen van het decimale stelsel naar een ander stelsel is een stukje ingewikkelder. Het is met makkelijkst uit te leggen aan de hand van een voorbeeld.
23(10) = ?(2)
Vanuit het tellen weten we al dat de basis van het binaire stelsel neerkomt op het maken van groepjes van twee. Dit kunnen we makkelijkst bepalen met de Euclidische deling.
D / G = Q R Uitleg Q R -------------------------------------------------------------------------------------- 23 / 2 = 11 1 ^ 23 = 11 * 2 + 1 XX XX XX XX XX XX XX XX XX XX XX X 11 / 2 = 5 1 /|\ 11 = 5 * 2 + 1 XXXX XXXX XXXX XXXX XXXX XX 5 / 2 = 2 1 | 5 = 2 * 2 + 1 XXXXXXXX XXXXXXXX XXXX 2 / 2 = 1 0 | 2 = 1 * 2 + 0 XXXXXXXXXXXXXXXX 1 / 2 = 0 1 | 1 = 0 * 2 + 1 XXXXXXXXXXXXXXXX
Uitleg:
- Blijkbaar kunnen we 11 groepen van 2 maken en hebben we 1 restgroep X.
- Bij de volgende stap proberen we te kijken hoeveel XX-groepjes we per twee kunnen samennemen. Blijkbaar kunnen we 10 XX-en samennemen tot 5 XXXX-en, waarbij er 1 restgroep XX is.
- Dit algoritme herhalen we: ditmaal kunnen we 4 XXXX-en samennemen tot 2 XXXXXXXX-en, met 1 restgroep XXXX.
- Bij de vierde stap kunnen we de XXXXXXXX en XXXXXXXX samennemen tot XXXXXXXXXXXXXXXX en hebben we geen restgroep.
- De vijfde stap wordt al eens over het hoofd gezien, maar we moeten blijven verderdelen tot het quotiënt 0 wordt. Daar we niets meer kunnen samennemen hebben we nu 1 restgroep XXXXXXXXXXXXXXXX.
- Voor het bepalen van het antwoord moeten we van beneden naar boven lezen en krijgen we: 23(10)=10111(2)
1203(10) = ?(16)
Stel, we willen 1203(10) omzetten naar hexadecimaal. Hiervoor kunnen we hetzelfde algoritme gebruiken als het vorige voorbeeld. Het enige verschil is dat het grondtal (deler) ditmaal 16 is, maar ook hier blijven we delen tot we als quotiënt 0 uitkomen. De kruisjes worden deze keer achterwege gelaten, omdat er teveel zijn:
D / G = Q R Uitleg ------------------------------------------- 1203 / 16 = 75 3 ^ 1203 = 75 * 16 + 3 75 / 16 = 4 11 /|\ 75 = 4 * 16 + 11 4 / 16 = 0 4 | 4 = 0 * 16 + 4
Merk op:
- Delen door 2 kunnen we gemakkelijk uit het hoofd, maar delen door 16 is moeilijker. Een klassiek rekentoestel kan een hulpmiddel zijn, maar rekent meestal niet Euclidisch. Toch kan je snel rekenen met: 1203 / 16 = 75,1875 ==> 75,1875 - 75 = 0,1875 ==> 0,1875 * 16 = 3.
- Opnieuw moet je van beneden naar boven aflezen, maar 4113 zou een fout antwoord zijn, want 4113(16) = 16659(10). De '11' moeten we namelijk eerst omzetten naar een hexadecimaal "cijfer": 11(10) == B(16).
- Het antwoord wordt dan: 1203(10) == 4B3(16)
Shortcuts
Om van het ene stelsel naar het andere om te rekenen, wordt vaak als tussenkomst het decimale stelsel gebruikt. Wil men van octaal naar hexadecimaal, dan is het vaak octaal -> decimaal -> hexadecimaal. Dit vergroot de kans op rekenfouten aanzienlijk. Er zijn echter handigheidjes om van binair naar hexadecimaal om te rekenen (en vice versa) of van binair naar octaal om te rekenen (en vice versa).
De truc zit er hem in, dat een groep van 4 cijfers in het binaire stelsel, precies één cijfer in het hexadecimale stelsel heeft. Of dat een groep van 3 cijfers in het binaire stelsel, precies één cijfer in het octale stelsel heeft Zolang je onderstaande tabel in gedachten houdt, kun je elke kant op omrekenen.
bin hex bin oct 0000 0 000 0 0001 1 001 1 0010 2 010 2 0011 3 011 3 0100 4 100 4 0101 5 101 5 0110 6 110 6 0111 7 111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F
Hexadecimaal <-> binair
Wil je weten wat 30F2(16) is in binair? Neem elk getal apart en schrijf deze op:
hex 3 0 F 2 bin 0011 0000 1111 0010
Conclusie: 30F2(16) = 0011 0000 1111 0010(2).
De andere kant op werkt net zo gemakkelijk. Wil je weten wat 11000011110010(2) is in hexadecimaal?
Groepeer eerst het binaire getal per 4 cijfers, beginnend aan de rechterkant.
bin 11 0000 1111 0010
Is er op het eind geen groep van 4, dan kun je hier nullen aan toevoegen.
bin 0011 0000 1111 0010
Nu kun je per groep kijken welke cijfer er bij hoort
bin 0011 0000 1111 0010 hex 3 0 F 2
Conclusie: 11000011110010(2) = 30F2(16).
Octaal <-> binair
De omzetting octaal naar binair (en omgekeerd) is net zo gemakkelijk. Binnen deze cursus gaan we daar niet verder op in.
Decimaal <-> binair
De "shortcut" omzetting van decimaal naar binair lukt niet! Dit omdat het grondtal 10 geen macht is van twee. Om één decimaal cijfer voor te stellen zijn 3 bits namelijk te weinig (daar kan je maximaal 7 en niet 9 mee voorstellen) en zijn 4 bits te veel (daar kan je maximaal niet 9 mee voorstellen, maar 15).
Als je het toch probeert, krijg je fouten. Zo zou 74(10) met een shortcutomzetting waar vier bits worden gebruikt 0111 0100(2) = 01110100(2) worden, maar dat binaire getal is 116(10) (te bepalen via de somregel). Het juiste antwoord is 74(10)=1001010(2) (te bepalen via de Euclidische deling)!
Conclusie: de omzetting decimaal <-> binair mag NIET via een shortcut!
Samenvatting
Voor het omrekenen tussen talstelsels zijn de volgende methoden gezien:
- (...)? -> (...)10: de somregel
- (...)10 -> (...)?: de Euclidische deling
- (...)16 <-> (...)2: shortcut
- (...)8 <-> (...)2: shortcut
Rekenmachines
Bovenstaande manieren zijn handig om het principe van talstelsels te begrijpen, maar als je in de praktijk een omrekening te doen is het handiger om gebruik te maken van de mogelijkheden van je besturingssysteem. Zo bieden de rekenmachines van Windows of Gnome standaard de mogelijkheid om tussen talstelsels om te rekenen. Vaak moet je wel de modus van het rekentoestel veranderen.
Oefeningen
Als je het omrekenen van het ene naar het andere talstelsels wil inoefenen, dan kan je de volgende oefeningen uitproberen. Als controle kan je het rekentoestel gebruiken.
- 101011(2) = ?(10)
- 78A(16) = ?(10)
- 11000011110010(2) = ?(16)
- DEAD(16) = ?(2)
- 123(16) = ?(10)
- 123(10) = ?(2)
- 49233(10) = ?(16)
- 10101(10) = ?(16)
- 1110101(2) = ?(10)
- ↑ James May gebruikt hetzelfde idee in zijn filmpje What are binary numbers?