Wiskunde/Talstelsels

Uit Wikibooks

Ga naar: navigatie, zoek
Inhoudsopgave Wiskunde
Hoofdstukken
  1. Algebra
  2. Getallen
  3. Meetkunde
  4. Oppervlakte
  5. Pythagoras
  6. Rekenkunde
  7. Talstelsels
  8. Vergelijkingen en ongelijkheden
  9. Volume

Waarschijnlijk zonder het te weten, gebruik je standaard al een talstelsel bij het rekenen: het decimale talstelsel. Dit hoofdstuk gaat over het gebruik van verschillende talstelsels en hoe je kunt omrekenen van het ene talstelsel naar het andere.

Inhoud

[bewerken] 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.

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.

[bewerken] Wat zijn talstelsels?

Een talstelsel is een systeem om getallen weer te geven in de vorm van een rij cijfers. De plaats die een cijfer in de rij inneemt bepaalt hoe we de bijdrage van dat cijfer aan het getal moeten interpreteren. Talstelsels zijn daarom positiestelsels. Zo wordt in het alledaagse decimale stelsels het getal 1432 opgevat als

1 x 1000 = 1000 (de 1 staat op positie 4 en vertegenwoordigt daarom 1 1000-tal)
4 x  100 =  400 (de 4 staat op positie 3 en vertegenwoordigt daarom 4  100-tallen)
3 x   10 =   30 (de 3 staat op positie 2 en vertegenwoordigt daarom 3   10-tallen)
2 x    1 =    2 (de 2 staat op positie 1 en vertegenwoordigt daarom 2 eenheden)
          ----- +
samen      1432 (decimaal)

De bijdrage van een cijfer is het door dat cijfer bepaalde veelvoud van een macht van het grondtal. De macht volgt uit de positie van het cijfer, en is een minder dan de positie. Op elke positie staat daarom een teken, cijfer, uit de range 0, 1,..., grondtal-1. Zo kunnen willekeurige getallen genoteerd worden met behulp van een beperkt aantal verschillende cijfers, namelijk niet meer dan het gebruikte grondtal.

In het octale stelsel, dus met grondtal 8, gebruikt men de cijfers 0, 1, ..., 7. Het getal 1432 in het octale stelsel betekent:

1 x  512 = 512 (de 1 staat op positie 4 en vertegenwoordigt daarom 1 512-tal)
4 x   64 = 256 (de 4 staat op positie 3 en vertegenwoordigt daarom 4  64-tallen)
3 x    8 =  24 (de 3 staat op positie 2 en vertegenwoordigt daarom 3   8-tallen)
2 x    1 =   2 (de 2 staat op positie 1 en vertegenwoordigt daarom 2 eenheden)
          ----- +
samen      794 (decimaal)


  • Er kunnen nullen vóór het daadwerkelijke getal staan zonder de waarde ervan te beïnvloeden. Zo is 1 hetzelfde als 01 en 001. Om de leesbaarheid te bevorderen, worden vaak de voorloopnullen weggelaten.

We vergelijken het tellen in een paar talstelsels:

Telvoorbeeld:

decimaal  octaal   binair hexadecimaal
 0         0         0         0
 1         1         1         1  
 2         2        10         2 
 3         3        11         3
 4         4       100         4
 5         5       101         5
 6         6       110         6
 7         7       111         7
 8        10      1000         8
 9        11      1001         9
10        12      1010         A
11        13      1011         B
12        14      1100         C
13        15      1101         D
14        16      1110         E
15        17      1111         F
16        20     10000        10
17        21     10001        11
18        22     10010        12     
19        23     10011        13
20        24     10100        14
21        25     10101        15

We zien dat in het hexadecimale stelsel, waar 16 cijfers nodig zijn, de letters A, B, C, D, E en F als cijfer gebruikt worden.


Een voorbeeldje (decimale stelsel):

008
009
010 <-- overgang
011
..
018
019
020 <-- overgang
021
..
098
099
100 <-- twee overgangen
101
  • Alle talstelsel 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, in het octale stelsel een 7 (octo = 8) en in het binaire stelsel een 1 (bi = 2).

[bewerken] Het decimale talstelsel

Het decimale talstelsel is het meest gebruikte talstelsel. Dit talstelsel gebruikt tien (deca = tien) cijfers. Deze zijn als volgt (van klein naar groot):

0 1 2 3 4 5 6 7 8 9

De normale rekenregels zijn hier op van toepassing.

Telvoorbeeld:

 0
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
..
19
20
21

[bewerken] Het binaire talstelsel

Het binaire talstelsel wordt bijna niet gebruikt door de mens. Een computer gebruikt dit stelsel vaak intern. Dit talstelsel gebruikt twee (bi = twee) cijfers, dus 0 en 1. Telvoorbeeld:

binair  decimaal
     0         0
     1         1
    10         2
    11         3
   100         4
   101         5
   110         6
   111         7
  1000         8
  1001         9
  1010        10
  1011        11
  1100        12
  1101        13
  1110        14
  1111        15

[bewerken] Het octale talstelsel

Het octale talstelsel wordt bijna niet gebruikt. Dit talstelsel gebruikt acht (octo = acht) cijfers. Deze zijn als volgt (van klein naar groot):

0 1 2 3 4 5 6 7

Telvoorbeeld:

octaal  decimaal
     0         0
     1         1
     2         2
     3         3
     4         4
     5         5
     6         6
     7         7
    10         8
    11         9
    12        10
    ..        ..
    16        14
    17        15
    20        16
    21        17

[bewerken] Het hexadecimale talstelsel

Het hexadecimale talstelsel wordt bijna niet gebruikt. Dit talstelsel gebruikt 16 (hexadeca = 16) cijfers. Deze zijn als volgt (van klein naar groot):

0 1 2 3 4 5 6 7 8 9 A B C D E F

Hier zie je dat naast de bekende tien cijfers 0 t/m 9, de zes letters A t/m F ook als cijfer gebruikt worden.

Telvoorbeeld:

hex  decimaal
  0         0
  1         1
  2         2
  3         3
  4         4
  5         5
  6         6
  7         7
  8         8
  9         9
  A        10
  B        11
  C        12
  D        13
  E        14
  F        15
 10        16
 11        17
 12        18
 ..        ..
 1E        30
 1F        31
 20        32
 21        33

[bewerken] Omrekenen

Om van het ene talstelsel om te rekenen naar het andere, is een aantal methoden.

Als voorbeeld rekenen we het getal 214365(7) om naar de decimale voorstelling.

Schrijf de cijfers onder elkaar en achter elk cijfer de bijbehorende macht van het grondtal en bereken de bijdrage van elk cijfer:

2 75 = 2 x 16807 = 33614
1 74 = 1 x  2401 =  2401
4 73 = 4 x   343 =  1372
3 72 = 3 x    49 =   147
6 71 = 6 x     7 =    42
5 70 = 5 x     1 =     5
                   ----- +
214365(7) =        37581 (decimaal)

Een handig algoritme, dat zich ook goed leent om geprogrammeerd te worden is:

  • neem het meest linkse cijfer
  • 2
  • is dit het laatste cijfer dan zijn we klaar
  • vermenigvuldig met het grondtal
  • 2 x 7 = 14
  • tel het volgende cijfer er bij op
  • 14 + 1 = 15
  • is dit het laatste cijfer dan zijn we klaar (herhaling van eerdere stappen)
  • vermenigvuldig met het grondtal
  • 15 x 7 = 105
  • tel het volgende cijfer er bij op
  • 105 + 4 = 109
  • is dit het laatste cijfer dan zijn we klaar (herhaling van eerdere stappen)
  • vermenigvuldig met het grondtal
  • 109 x 7 = 763
  • tel het volgende cijfer er bij op
  • 763 + 3 = 766
  • 766 x 7 = 5362
  • 5362 + 6 = 5368
  • 5368 x 7 = 37576
  • 37576 + 5 = 37581
  • is dit het laatste cijfer dan zijn we klaar, ja.

Deze manier van omwerken gaat natuurlijk ook de andere kant op, dus van decimaal naar bijvoorbeeld het 7-tallig stelsel. Als voorbeeld bepalen we hoe 37581 (decimaal) in het 7-tallig stelsel geschreven wordt. Het is wel een lastige methode omdat we goed erop moeten letten dat we nu in dit nieuwe stelsel zullen moeten rekenen.

decimaal    7-tallig
3 104 =  3 x 41104 = 153315
7 103 = 10 x  2626 =  26260
5 102 =  5 x   202 =   1313
8 101 = 11 x    13 =    143
1 100 =  1 x     1 =      1
                     ------ +
37581 (decimaal)   = 214365(7)   

Dit is natuurlijk een erg lastige methode, maar er is gelukkig ook een andere waarin we gewoon (decimaal) kunnen rekenen. Die methode is eigenlijk de omgekeerde weg die in het bovenstaande (handige) algoritme werd gevolgd. In plaats van steeds met het grondtal 7 te vermenigvuldigen, delen we er door.

37581 = 5368 x 7 + 5
 5368 =  766 x 7 + 6
  766 =  109 x 7 + 3
  109 =   15 x 7 + 4
   15 =    2 x 7 + 1
    2 =    0 x 7 + 2

De resten, van onder naar boven gelezen, vormen het gevraagde getal 214365(7).


[bewerken] Van een ander stelsel naar het decimale stelsel

Als voorbeeld hier de werking van het decimale stelsel:

Gegeven getal 238
Dit getal kan als volgt worden ontleed (zie Rekenkunde voor rekenregels)
10 * 10 * 1 * 2 = 200
10 * 1 * 3 = 30
1 * 8 = 8
Bij elkaar opgeteld is dit weer 238.

Deze berekening kan ook worden geschreven als volgt:

2 * 102 = 2 * 100 = 200
3 * 101 = 3 * 10 = 30
8 * 100 = 8 * 1 = 8

De methode die hier wordt gebruikt, maakt gebruik van het 'gewicht' van een cijfer. Elk cijfer krijgt een 'gewicht'. De gewichten worden toegekend van rechts naar links, beginnend bij 0, overeenkomend met de positie van het cijfer. Het gewicht van een cijfer is een macht van het grondtal van het stelsel. De bedoelde macht is één minder dan de positie van het cijfer. Als volgt:

macht   210
-----------
getal   238

Vervolgens wordt elk cijfer vermenigvuldigd met het <gewicht>. Het grondtal is het talstelsel (in dit voorbeeld 10). Zo krijg je dus: 238 = 102 * 2 + 101 * 3 + 100 * 8

Om 472(8) om te rekenen naar een decimaal getal volgen we de volgende stappen:

  1. Bepaal de gewichten voor elk cijfer
  2. Reken voor elk cijfer de macht uit mbv grondtal tot de macht gewicht
  3. De uitkomst van elk cijfer bij 2 wordt vermenigvuldigd met het cijfer zelf.

De uitwerking is dus als volgt:

472(8)
gewicht 210
-----------
getal   472
82, 81, 80
82 * 4 + 81 * 7 + 80 * 2
Resultaat:
\begin{matrix}
472_{(8)}\\ \ 
& = & 8^2 * 4 + 8^1 * 7 + 8^0 * 2\\ \ 
& = & 64_{(10)} * 4 + 8 * 7 + 1 * 2\\ \ 
& = & 256_{(10)} + 56_{(10)} + 2\\ \ 
& = & 314_{(10)}
\end{matrix}

Dus 472_{(8)} \equiv \; 314_{(10)}

[bewerken] 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.

Stel, we willen 1203(10) omzetten naar hexadecimaal. Het getal moet worden gedeeld door het grondtal van het doel stelsel (in dit geval 16). Het aantal restwaarden wordt opgeschreven. De gehele waarde wordt meegenomen voor de volgende berekening, totdat de gehele waarde in het doel stelsel voorkomt.

1203(10)
= 1203(10) / 16(10) = 75(10) rest 3 (3 opschrijven)
= 75(10) / 16(10) = 4 rest 11(10) (11(10) opschrijven)
= 4 (4 opschrijven, 4 komt voor in het hexadecimale stelsel, stop)

Nu moet er nog een vertaling plaatsvinden voor 11(10).

11(10) == B(16).

De opgeschreven waarden moet gelezen worden van onder naar boven. Het onderste getal is het meest linkse getal. De uitkomst is dus 4B3(16).

1203(10) == 4B3(16)

[bewerken] Shortcuts

[1] 

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.

Zo zijn er handigheidjes om van binair naar hexadecimaal om te rekenen, zonder tussenkomst van het decimale stelsel. De truk zit hem er in, dat een groep van 4 cijfers in het binaire stelsel, precies één cijfer in het hexadecimale stelsel heeft.

binair  hex
  0000  0
  0001  1
  0010  2
  0011  3
  0100  4
  0101  5
  0110  6
  0111  7
  1000  8
  1001  9
  1010  A
  1011  B
  1100  C
  1101  D
  1110  E
  1111  F

Zolang je bovenstaande tabel in gedachten houdt, kun je elke kant op omrekenen. Wil je weten wat 30F2(16) is in binair? Neem elk getal apart en schrijf deze op:

3 = 0011(2)
0 = 0000(2)
F(16) = 1111(2)
2 = 0010(2)

Wanneer je dit nu achter elkaar zet (van boven naar beneden), krijg je: 0011 0000 1111 0010(2).

Conclusie: 30F2(16) == 0011 0000 1111 0010(2).

De andere kant op werkt net zo makkelijk. Wil je weten wat 11000011110010(2) is in hexadecimaal?

Groepeer eerst het binaire getal per 4 cijfers, beginnend aan de rechter kant.

11 0000 1111 0010(2)

Is er op het eind geen groep van 4, dan kun je hier nullen aan toevoegen.

0011 0000 1111 0010(2)

Nu kun je per groep kijken welke cijfer er bij hoort

0011(2) = 3
0000(2) = 0
1111(2) = F(16)
0010(2) = 2

Zet het resultaat weer achter elkaar (van boven naar beneden): 30F2(16).

Zo kun je ook binair <-> octaal (3 binaire cijfers = 1 octaal cijfer).

 

Heckert GNU.png Deze pagina is vrijgegeven onder de GNU Free Documentation License (GFDL) en nog niet onder CC-BY-SA. Klik hier voor meer informatie.

Wilt u deze tekst gebruiken onder de Creative Commons CC-BY-SA licentie?
Klik dan hier om te kijken van welke gebruikers u nog toestemming nodig heeft.

[[Bestand:Onderwerp[[Afbeelding:Crystal Clear filesystem folder image.png{| class="prettytable" |- Tekst die niet geïnterpreteerd wordt. |} {| {{prettytable}} |- | 1 || 2 |- | 3 || 4 {| {{prettytable}} |- | 1 || 2 |- | 3 || 4<math>'''Vul hier de formule in'''[[[Media:http://nl.wikibooks.org WikibooksNL]]]</math> |} |} ]]]]


Citefout: De tag <ref> bestaat, maar de tag <references/> is niet aangetroffen

Informatie afkomstig van http://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.
Persoonlijke instellingen