Het is voor ons –mensen- niet moeilijk om een decimaal
getal om te zetten in nullen en énen. Zo is bijv. het getal 2310 in
binaire notatie 101112, omdat 23=1*24 + 0*23 +
1*22 + 1*21 + 1*20. De procedure is duidelijk.
Hoe maakt een computer deze vertaalslag? Je zegt
misschien: “Door gewoon uit te rekenen”. Maar dat vooronderstelt dat de
computer minstens al weet wat de binaire notatie van de cijfers 2 en 3 is, want
die werkt immers alleen maar met nullen en énen. Dat gewoon uitrekenen lukt dus
niet.
Er moet een 4-bits register zijn van waaruit draden lopen
naar de numerieke toetsen. Laten we dit register DD (van decimaal naar
digitaal) noemen. De toets met cijfer 6 (0110) bijv. heeft dus vaste
verbindingen met het 2de en 3de bit van dit register.
In ons positioneel tientallig stelsel staat het getal 10
(1010) centraal. Zo is bijv. het getal 235 te schrijven als: (2*10 + 3)*10 + 5.
Er moet dus ook een register TIEN zijn met daarin als vaste inhoud: 1010.
Sla je de toets met cijfer 2 aan, dan staat in register
DD: 0010. Deze inhoud wordt vervolgens gekopieerd naar het register BR (Binair
Resultaat). In dit register staat dus het (voorlopige) resultaat.
Voer je als tweede cijfer 3 in, dan staat in register DD:
0011. De inhoud van BR en van TIEN gaan richting de ALU (Arithmetic and Logic
Unit). Daar wordt vermenigvuldigd. Dat levert 10100 (20) op en dat wordt
gekopieerd naar BR.
Vervolgens gaan de inhoud van BR en van DD naar de ALU en
daar wordt deze keer opgeteld met als resultaat: 10111 (23). Dit resultaat
wordt gezet in BR.
Sluit je de invoer af dan is dus een decimaal getal
omgezet in nullen en énen. Het resultaat staat in het register BR.
rkh, 23-12-2019
1 opmerking:
Als ik dit tot mij laat doordringen, verbaast het mij dat zoiets achterlijks als een computer, die immers niets maar dan ook niets begrijpt maar alleen strikt doet wat hem wordt opgedragen, in staat is niet alleen mij met schaken te verslaan (wat een geweldige prestatie is ! ) maar ook de wereldkampioen GO met GO.
PJ te N
Een reactie posten