] >
Is een getal bijvoorbeeld hexadecimaal gegeven, dan kun je het rechtstreeks omzetten in de decimale notatie, zoals we al eerder deden:
Als je goed kunt hex-rekenen, dan kan het ook met staartdelingen in het hexadecimale stelsel.
|
|
|
|
en dus . Wil men in het hexadecimale stelsel snel kunnen rekenen, dan is het nodig de tafels van tot en met F te kennen, zie Figuur 6.1. Zeker bij staartdelingen zijn de tafels van vermenigvuldiging handig.
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7 8 9 A B C D E F
2 0 2 4 6 8 A C E 10 12 14 16 18 1A 1C 1E
3 0 3 6 9 C F 12 15 18 1B 1E 21 24 27 2A 2D
4 0 4 8 C 10 14 18 1C 20 24 28 2C 30 34 38 3C
5 0 5 A F 14 19 1E 23 28 2D 32 37 3C 41 46 4B
6 0 6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A
7 0 7 E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69
8 0 8 10 18 20 28 30 38 40 48 50 58 60 68 70 78
9 0 9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87
A 0 A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96
B 0 B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5
C 0 C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4
D 0 D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3
E 0 E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2
F 0 F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1
Voor het rechtstreeks omzetten in een ander stelsel reken je in het gegeven stelsel. Je moet daarvoor staartdelingen in dat stelsel uitvoeren. Bij het omrekenen van -tallig naar -tallig reken je -tallig, dus moet je eerst in het -tallige stelsel schrijven. Vervolgens herhaald delen met rest toepassen: het resultaat is een lijst van -tallige schrijfwijzen van getallen , een lijst van lijsten dus. Iedere term in de lijst zet je om naar de standaardnotatie.
Code voor staartdelingen in de -tallige schrijfwijze voegen we toe aan integer.py. Deze wordt verderop gebruikt voor het omzetten van een getalstelsel naar een ander.
Bij de staartdeling moet bepaald worden welk veelvoud van de deler van het deeltal moet worden afgetrokken. Er wordt daartoe eerst met gmultiples een lijst gemaakt van veelvouden van de deler. De functie gdivmod0 is de steeds terugkerende elementaire stap in de staartdeling, die in gdivmod gedefinieerd is.
Het omzetten van een talstelsel naar een ander is herhaald delen met rest. We breiden integer.py daarmee uit.
Optellen en vermenigvuldigen berusten uiteindelijk op herhaald nemen van een opvolger. De decimale notatie die we voor de natuurlijke getallen hebben gebruikt wordt daarbij niet benut. Buiten we deze notatie uit, dan worden snelle algoritmen verkregen, algoritmen die ook met onze primitieve middelen snel zijn.