maandag, december 23, 2019

Van decimaal naar digitaal


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:

Anoniem zei

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