Techniek en Digitaal

Binair en hexadecimaal rekenen

Binair en hexadecimaal rekenen

In de digitale wereld rekent men met binaire getallen en getal-reeksen. Dit komt omdat het veel gemakkelijker is voor hardware om met het binaire talstelsel te werken dan met het tientallig talstelsel. Een getal wordt opgevat als een reeks enen en nullen. Hiermee verwant is het hexadecimale stelsel, dat voor grote getallen makkelijker leesbaar is. In dit artikel wordt uitgelegd wat deze stelsels precies zijn, en hoe ermee te rekenen valt.



Binair getal

Een binair getalstelsel is een representatie-systeem van getallen, waarbij het getal 2 als grondtal gebruikt wordt. Dit in tegenstelling tot onze 'gewone' talstelsel, dat het getal 10 als grondtal heeft. Zo kunnen we het getal 356 ontleden in:
356 = 3 x 100 + 5 x 10 + 6 x 1 = 3 x 10² + 5 x 10¹ + 6 x 10°
Dit wordt het decimale talstelsel genoemd.

Een binair getal heeft een soortgelijke representatie, maar nu met 2 als grondtal. Het getal 6 wordt binair voorgesteld als:
6 = 1 x 4 + 1 x 2 + 0 x 1 = 1 x 2² + 1 x 2¹ + 0 x 2° = 110
De plaats waar door een '0' of '1' een waarde wordt aangegeven, noemt men bit (binary digit). Het bit dat uiterst rechts staat, geeft het getal 2° (=1) aan; het wordt least significant bit (lsb) genoemd. Het bit dat uiterst links staat, noemt men het most significant bit (msb).

Op deze wijze kunnen we de getallen 0 t/m 15 representeren:
0 - 0000
1 - 0001
2 - 0010
3 - 0011
4 - 0100
5 - 0101
...........
14 - 1110
15 - 1111

Dit is slechts één manier om getallen binair weer te geven. De bovenstaande code wordt ook wel straight binary genoemd. Er zijn ook andere coderingen mogelijk. Zo biedt de two's complement code de mogelijkheid om ook negatieve getallen te representeren. De BCD (binary code decimal) code is een tussenvorm tussen binair en decimaal. De gray code is een systeem dat voor opeenvolgende getallen altijd maar een bit verandert; het wordt gebruikt voor het bewaken van de nauwkeurigheid bij bitfouten.

Optellen
Binair optellen werkt hetzelfde als decimaal optellen, waarbij we de volgende regels in acht moeten nemem:
0 + 0 = 0
0 + 1 = 1
1 + 1 = 10
Sommeren we twee binaire getallen, dan beginnen we met het optellen van de twee least significant bits. Is de uitkomst van de som 10, dan plaatsen we een '0' in de uitkomst-lsb en een '1' geven we door naar het volgende bit:
v
01
01
--- +
10
De decimale optelling 5+6=11 komt neer op:
v
0101
0110
------ +
1011
De 'v' markeert de plek waar een '1' doorgegeven wordt. Aftrekken is hetzelfde als optellen van een negatief getal. Voor het weergeven van negatieve getallen gebruikt men de two's complement code. Dezelfde rekenregels blijven gehandhaafd, maar we laten dit hier verder buiten beschouwing.

Vermenigvuldigen
In het vermenigvuldigen van een binair getal kan men eenvoudig inzicht krijgen, door eerst te kijken naar vermenigvuldiging met een getal dat een macht van 2 is. Een vermenigvuldiging met het getal 2 komt neer op het verchuiven van alle bits één postitie naar links. Op de vrijgekomen positie uiterst rechts zetten we een '0':
0101
0010
------ x
1010
Omdat 4 = 2², komt vermenigvuldigen met het getal 4 neer op een verschuiving naar links van 2 positie's, en vermenigvuldigen met 8 (= 2³) op een verschuiving van 3 positie's. Van dit een principe wordt gebruik gemaakt voor andere getallen (die allemaal als machten van 2 te schrijven zijn).

De binaire vermenigvuldiging en optelling wordt in hardware uitgevoerd door logische circuits. Zo'n circuit heeft 2 input-signalen van een zekere bitbreedte, en een output-signaal. Een binaire opteller of vermenigvuldiger (Arithmetic Logic Unit of ALU) bestaat uit een configuratie van logische poorten zoals AND, NAND, OR, NOR, and XOR.

Hexadecimaal

Ingenieurs willen snel kunnen zien wat de waarde van een bepaald getal is, of hoe groot een getal ongeveer is. Daarom gebruikt men in de digitale techniek ook vaak het hexadecimale stelsel. Dit stelsel heeft het getal 16 als grondtal, en is verwant met het binaire stelsel. De getallen 0 t/m 15 worden gerepresenteerd als:
0 - 0
1 - 1
2 - 2
3 - 3
......
10 - A
11 - B
.......
15 - F
Een binair getal van 4 bits breed noemt men een nibble. De waarde van een nibble kan door precies één hexadecimaal cijfer worden weergegeven. Het getal 13 bijvoorbeeld is binair 1101, en hexadecimaal D.
Dus:
0000 - 0
0001 - 1
0010 - 2
0011 - 3
..........
1010 - A
1011 - B
..........
1111 - F

De hexdecimale schrijfwijze heeft tot gevolg dat het bekijken van grote getallen makkelijker wordt:
255 decimaal = 1111 1111 binair = FF hexadecimaal.

Optellen
Hexadecimaal optellen werkt weer hetzelfde als decimaal en binair optellen. De volgende regels nemen we in acht:
9 + 1 = A
F + 1 = 10
Sommeren we twee hexadecimale getallen, dan beginnen we met het optellen van de twee least significant nibbles. Is de uitkomst van de som 10, dan plaatsen we een '0' in de uitkomst-nibble en een '1' geven we door naar het volgende nibble:
v
0F
01
--- +
10

of

v
0F
06
--- +
15

of

vv
0FF
016
---- +
115

Zie ook

Zie ook de artikelen:
De werking van de Flip-Flop
Logische poorten, de XOR
Logische poorten, de NAND en NOR
De hardware bug, een overzicht
Binair vermenigvuldigen
Binaire coderingen
© 2009 - 2010 Gerritseric, gepubliceerd in Techniek (Wetenschap) op 13-02-2009, laatst gewijzigd op 13-03-2010. Het auteursrecht van dit artikel ligt bij de infoteur. Zonder toestemming van Gerritseric is vermenigvuldiging van dit artikel verboden. Meer...

Verwante artikelen


Reageer op het artikel "Binair en hexadecimaal rekenen"


Er zijn nog geen reacties geplaatst op dit artikel.