Binair vermenigvuldigen
Het vermenigvuldigen van twee binaire getallen is een operatie die veelvuldig wordt toegepast in de digitale techniek. Uiteindelijk is het niet de software, maar de hardware die de berekeningen uitvoert. De rekeneenheid die deze bewerking uitvoert, noemt men een ALU, of Arithmetic Logic Unit. Dit artikel legt uit hoe zo'n vermenigvuldiging in zijn werk gaat, en hoe dergelijke sommetjes in hardware worden opgelost.Vermenigvuldigen
Een vermenigvuldiging (of product) in ons gebruikelijke talstelsel, het decimale talstelsel, kan worden opgevat als een optelsom van kleinere vermenigvuldigingen. Men dient eerst te beseffen dat alle getallen als machten van 10 te schrijven zijn:356 = 3 x 10² + 5 x 10¹ + 6 x 10°
15 = 1 x 10¹ + 5 x 10°
De vermenigvuldiging van deze twee getallen komt neer op:
356
15
---------- x
10 x 356
5 x 356
---------- +
3560
1780
---------- +
5340
Door het getal 15 als machten van 10 te schrijven, delen we de vermenigvuldiging op in twee kleinere producten: het product van de tientallen (10¹) en het product van de eenheden (10°). Daarna tellen we de twee deelproducten op. Speciale aandacht vereist de som die boven de 10 uitkomt. In dat geval laten we de eenheden staan, en geven we een '1' door naar de volgende som. In het bovenstaande voorbeeld geldt bijvoorbeeld dat 6+8=14, dus '4' laten staan, en '1' doorgeven aan 5+7, levert 5+7+1=13. Deze '3' laten we weer staan, en de '1' geven we opniuew door.
Binair
Een binaire talstelsel heeft het getal 2 als grondtal. Dit betekent dat getallen als machten van het getal 2 worden geschreven. De representatie van het getal 13 wordt bijvoorbeeld:13 = 1 x 8 + 1 x 4 + 0 x 2 + 1 x 1 = 1 x 2³ + 1 x 2² + 0 x 2¹ + 1 x 2° = 1101
De plaats die de waarde '0' of '1' aangeeft, noemt men een bit. Ook in de binaire vermenigvuldiging wordt een product verdeeld over kleinere producten. Voor het product van twee bits gelden de volgende rekenregels:
0 x 0 = 0
0 x 1 = 0
1 x 1 = 1
Een vermenigvuldiging met het getal 2 komt neer op het vermenigvuldigen met '10'. Verdelen levert: een product met 1x2¹ en een product met 0 x 2°. Het product 5 x 2 = 0101 x 0010 is dus:
0101
0010
---------------- x
0101 x 1 x 2¹
0101 x 0 x 2°
De vermenigvuldiging met het getal 2¹ is hetzelfde als: alle bits een positie naar links verschuiven en helemaal rechts een '0' toevoegen.
Dit levert op:
0101 x 1 x 2¹
0101 x 0 x 2°
---------------- +
1010
0000
------------ +
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. Dit principe kan worden gebruikt voor alle getallen (die allemaal als machten van 2 te schrijven zijn). Zo zal het product 5 x 15 =75, binair hetzelfde zijn als:
0101
1111
------------ x
0000101
0001010
0010100
0101000
----------- +
1001011
Hardware
De binaire vermenigvuldiging wordt in hardware uitgevoerd door logische circuits. Zo'n circuit heeft 2 input-signalen van een zekere bitbreedte, en een output-signaal. Een vermenigvuldiger (Arithmetic Logic Unit of ALU) voert dus in principe twee operaties uit:- Verschuiven
- Optellen
Lees verder
Gerelateerde artikelen
Binair en hexadecimaal rekenen In de digitale wereld rekent men met binaire getallen en getal-reeksen. Dit komt omdat het…Binaire coderingen In de digitale wereld rekent men met enen en nullen; het zogenaamde binaire talstelsel. Dit talstelsel…
De Gray-code, binair maar dan anders Getallen kunnen op verschillende manieren worden weergegeven. Het decimale stelsel,…
De omzetting van Fahrenheit naar Celsius We hebben het allemaal al meegemaakt: we zitten in het buitenland of horen een w…
Procenten en promillages Wat zijn procenten en promillages en hoe gebruik je ze? Hoe werkt het ook al weer? In dit artike…
Reageer op het artikel "Binair vermenigvuldigen"
Tronic, 26-06-2011 23:59
U heeft helemaal gelijk. Die laatste term moet eruit. De optelling wordt dan:
0101 - 5
1010 - 10
10100 - 20
101000 - 40
Maakt samen 75.
Hans, 26-06-2011 10:35
Ik hoop dat ik het principe van binair vermenigvuldigen goed begrijp, want volgens mij staat er een fout op deze pagina. Bij de allerlaatste vermenigvuldig/optelsom voor het kopstukje "Hardware", wordt ook 1010000 opgeteld terwijl dit 80 representeert en dus al veel te veel is voor de totaalsom van 75. Hoe kan 1111x0101 5 op te tellen sommen hebben terwijl er maar 4 producten worden uitgevoerd? ;-)
Als ik 1010000 niet meetel kom ik uit op 5+10+20+40 = 75
Graag een reactie retour op mijn mailadres als dit juist of onjuist is, zodat ik weet of ik het nu goed heb begrepen of dat ik dieper de materie in moet duiken.