|
Tellen & Talstelsels (5) |
|
Inhoud:
[1] tellen
[2] modulus rekenen
[3] gekoppelde tellers
[4] een gerobotiseerd onderdelen magazijn
[5] talstelsels
[6] negatieve getallen
[7] som, verschil, complement
[8] antwoorden
Het 10 tallig stelsel
Ongetwijfeld is de wiskunde in een ver verleden begonnen met turven.
Streepjes zetten, stokjes of schelpen gebruiken om aantallen aan te geven.
De Romeinse cijfers zijn al iets handiger dan turven, maar voor het maken
van berekeningen zijn ze niet geschikt.
Ons 10-tallig stelsel is een manier om aantallen te coderen.
Voor de omzetting van turven naar het 10-tallig stelsel schakelen we
modulo-10- tellers achter elkaar.
De tellers (cijfers) vormen samen een getal.
Die getallen zijn, door de systematische opbouw, zeer geschikt voor het
maken van berekeningen.
Stel, dat we 726 hebben geturfd.
Het laatste cijfer van de teller wordt dan 726 mod 10 = 6.
Het aantal carries is 726 div 10 = 72.
Dat levert als volgende cijfer 72 mod 10 = 7, enzovoorts.
Het 2 tallig stelsel
In plaats van modulo-10- hadden we ook elke andere waarde >1 kunnen kiezen.
Om de werking van digitale computers te beschrijven is vooral het 2 tallig
stelsel geschikt. Dat stelsel kent alleen de cijfers 0 en 1.
Digitale computers zijn opgebouwd uit duizenden tot miljoenen elektronische
schakelaartjes, die elk de stand "aan" (1) of "uit" (0) kunnen hebben.
Bij de veelgebruikte TTL (Transistor-Transistor-Logic) schakelingen
wordt een 0 voorgesteld door een spanning van 0..0,8 Volt en
een 1 door een spanning van 2,2 ... 5 Volt.
In het tweetallig stelsel heet een cijfer een bit.
Dat is een afkorting van BInary-digiT, tweetallig-cijfer.
Het bit is de kleinste hoeveelheid informatie, die mogelijk is.
Het kenmerk van informatie is, dat het aantal keuzemogelijkheden
wordt verminderd.
Laat iemand maar een getal onder de 10 raden.
Eerst zijn er 10 mogelijkheden: 0 .. 9. Als het getal geraden is, dan
is het aantal mogelijkheden tot 1 teruggebracht.
De kleinste hoeveelheid informatie, die kan worden gegeven, is het
antwoord ja (1) of nee (0) op een vraag.
Hieronder zie je een 4 bits telwerk (B0..B3) met daaronder 10- tellers (D0..D1)
om de twee talstelsels goed te kunnen vergelijken.
vraag 9
a. wat is de modulus van het telwerk B0..B3 ?
b. hoeveel bits zijn nodig om alle getallen van 0..4000 te kunnen bevatten
c. wat is de hoogste (decimale stand) van een telwerk met 16 bits?
d. wat is de hoogste stand van een telwerk met n bits?
Bits en Bytes
Een bit is een getalletje, dat de waarde 0 of 1 kan hebben.
Een computergeheugen bestaat uit bits.
Die bits zijn georganiseerd in groepjes van 8.
Zo'n groepje heet een byte.
Elk byte is apart adresseerbaar, dus uit te lezen of te veranderen.
De eerste microprocessors moesten byte voor byte uit het geheugen lezen.
(de zg. 8-bit processors)
Latere typen konden ook 2 bytes tegelijk lezen: de 16-bits processors.
De huidige Pentiums zijn 32-bit processoren, ze kunnen 4 bytes gelijktijdig
uitlezen of in het geheugen schrijven.
Elk byte heeft een eigen adres in het geheugen. Als geheugengrootte zien we
machten van 2, want het geheugenadres is natuurlijk ook een binair getal.
Soms wordt in advertenties de geheugengrootte wat afgerond.
Met de aanduiding Kilo wordt soms 1000 , soms 210 = 1024 bedoeld.
Zo is een geheugen van 1 megabyte 1024 * 1024 = 1048576 bytes groot.
1 GigaByte = 1024 MegaByte = 10243 = 1073741824 bytes.
Binaire getallen zijn niet erg overzichtelijk.
Een eerste stap is 4 bits samen te nemen.
De modulus van 4 bits is 16. Zo ontstaat het 16-tallig stelsel, dat
bij het programmeren veel wordt gebruikt, bv. om kleuren in te stellen.
16 tallig heet ook wel hexa-decimaal.
Voor het 16-tallig stelsel zijn 16 cijfers nodig, 6 extra voor de standen 10..15.
Hiervoor zijn de letters a,b,c,d,e,f genomen.
Hieronder zie je een 4-bits- en een hexadecimale teller.
De 2 hexadecimale tellers vormen samen 1 byte
vraag 10
a. maak een tabel (0..15) voor de omzetting van 2- naar 10- naar 16-tallig
zet deze 2-tallige getallen om naar 16-tallig:
b. 1010 0100
c. 1100 0011 1001 0110
schrijf deze hexadecimale getalllen om naar 2-tallig:
d. 6a
e. f3b9
Talstelsels omrekenen
Door getallen te beschouwen als telwerken, kunnen de bekende operatoren
mod en div worden toegepast voor omrekening.
Als voorbeeld rekenen we 39581 om naar het 16-tallig stelsel.
39581 mod 16 = 13, dat is hex. d
39581 div 16 = 2473
2473 mod 16 = 9
2473 div 16 = 154
154 mod 16 = 10, dat is hex. a
154 div 16 = 9
Het antwoord is 9a9d.
De omzetting van hexadecimaal naar binair is simpel:
vul voor elk cijfer (0..f) het bijbehorende pakketje van 4 bits in.
Terugrekenen van 9a9d naar 10-tallig:
de d zijn eenheden, nl. 13
de 9 zijn 16 tallen dus 9 * 16 = 144
de a zijn 16*16 = 256 tallen dus 10 * 256 = 2560
de laatste 9 zijn 16*16*16 = 4096 tallen dus 9 * 4096 = 36864
13 + 144 + 2560 + 36864 = 39581
Omrekenen naar een vreemd T-tallig stelsel doe je met delen door T
en de resten te noteren, totdat het quotient gelijk is aan 0.
De omzetting (naar 2-tallig) verloopt sneller bij delen door 16, dan bij delen door 2.
vraag 11
zet om van 10- naar 16-tallig stelsel:
a. 100
b. 1000
c. 65536
zet om van 2- naar 10-tallig:
d. 1010 0100
e. 1100 0011 1001 0110