Denkende Machines -- Computers, rekenen, redeneren - CWI
Denkende Machines -- Computers, rekenen, redeneren - CWI
Denkende Machines -- Computers, rekenen, redeneren - CWI
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
48 HOOFDSTUK 2. REKENEN EN REDENEREN<br />
In binaire complementnotatie over 15 numerieke posities gebruiken we het meest significante bit<br />
(het bit helemaal links, dus op positie 16 vanaf rechts) voor de tekeninformatie: 1 betekent negatief<br />
getal in complementnotatie, 0 betekent: positief getal. De negatieve getallen die we kunnen<br />
representeren in twee bytes lopen van −2 15 (binaire representatie 1000.0000.0000.0000) tot −1<br />
(binaire representatie 1111.1111.1111.1111), en de niet-negatieve van 0 (binaire representatie<br />
0000.0000.0000.0000) tot 2 15 − 1 (binaire representatie 0111.1111.1111.1111).<br />
Opdracht 2.13 Wat is het kleinste getal dat gerepresenteerd kan worden in binaire complementnotatie,<br />
wanneer we per getal vier bytes ter beschikking hebben?<br />
2.4 Logica: Redeneren = Rekenen<br />
Zoals wij in paragraaf 2.2 gezien hebben, kun je logische operaties als EN, OF en NIET gebruiken<br />
om circuits te bouwen waarmee je binair kunt <strong>rekenen</strong>. Je zou dus kunnen zeggen dat een circuit<br />
een soort van logische (reken)machine voorstelt. Een belangrijk verschil tussen circuits en de<br />
machinemodellen zoals de Turing machine en de registermachine die in het volgende hoofdstuk<br />
aan de orde komen is dat er bij een circuit altijd een bovengrens op de lengte van invoer en<br />
uitvoer zit. Kijk bijvoorbeeld naar de half-adder in Figuur 2.6. Dit circuit kan alleen getallen<br />
van 8 bits bij elkaar optellen. Een Turing machine daarentegen kan getallen van willekeurige<br />
lengte bij elkaar optellen.<br />
Het <strong>rekenen</strong> met logische operaties kan echter ook op een andere manier worden bekeken.<br />
Laten we afspreken dat we de kleine letters a, b, . . . , r en p1, p2, . . . gebruiken als afkortingen<br />
voor de meest eenvoudige beweringen zoals ‘Het regent’ of ‘Jan houdt van Marijke’. Met behulp<br />
van de logische operaties ¬ (niet), ∧ (en), ∨ (of) en → (impliceert) kunnen we nu complexe<br />
beweringen als logische formules weergeven, zodat bijvoorbeeld de zin ‘Als ik de loterij win, dan<br />
koop ik een auto of een huis’ met de formule l → (a ∨ h) correspondeert. Hierbij staat l voor ‘Ik<br />
win de loterij’, a voor ‘Ik koop een auto’ en h voor ‘Ik koop een huis’.<br />
2.4.1 Waarheidstabellen<br />
Zoals al eerder vermeld, kun je de getallen 1 en 0 die de basis van het binaire <strong>rekenen</strong> vormen<br />
ook lezen als waar en onwaar, en onder deze interpretatie zijn de volgende waarheidstabellen van<br />
de logische operaties dan ook heel natuurlijk: ze geven aan hoe je de waarheid/onwaarheid van<br />
een complexe bewering kunt uit<strong>rekenen</strong> op basis van de waarheid/onwaarheid van eenvoudiger<br />
beweringen.<br />
p ¬p<br />
0 1<br />
1 0<br />
p q p ∨ q<br />
0 0 0<br />
0 1 1<br />
1 0 1<br />
1 1 1<br />
p q p ∧ q<br />
0 0 0<br />
0 1 0<br />
1 0 0<br />
1 1 1<br />
p q p → q<br />
0 0 1<br />
0 1 1<br />
1 0 0<br />
1 1 1<br />
Als we bijvoorbeeld naar de waarheidstabel van negatie kijken en 1 als ‘waar’ en 0 als ‘onwaar’<br />
lezen, dan geeft de waarheidstabel van negatie aan dat ¬p waar is als p onwaar is, en omgekeerd.<br />
De zin ‘Het regent niet’ is waar als de zin ‘Het regent’ onwaar is, en omgekeerd. Voor de<br />
conjunctie p ∧ q aan de andere kant geeft de waarheidstabel aan dat deze alleen waar is als zowel