edubun
Nederlands

Hoe poorten getallen optellen

Eén XOR en één AND zijn genoeg om twee bits op te tellen. Verbind vier volledige optellers en je telt elk tweetal getallen van 0 tot 15 op.

Probeer vóór het lezen 0101 en 0011 op papier binair op te tellen, zoals decimaal. Schrijf elke overdracht boven de volgende kolom. Drie feiten volstaan: 0 + 0 = 0, 0 + 1 = 1 en 1 + 1 = 10: schrijf 0 en draag 1 over. Met inkomende overdracht is 1 + 1 + 1 = 11: schrijf 1 en draag 1 over. De uitwerking volgt hierna; dek die eerst af.

De uitwerking: rechts 1 + 1 = 10, schrijf 0, overdracht 1. Dan 0 + 1 plus overdracht is weer 10: schrijf 0, overdracht 1. Dan 1 + 0 plus overdracht, 10: schrijf 0, overdracht 1. Links is 0 + 0 plus overdracht 1. De uitkomst 1000 is 8, en 5 + 3 = 8. Drie van vier kolommen hadden overdracht. Rekenmachine, game en spreadsheet doen uiteindelijk hetzelfde. In een processor verzorgen enkele poorten elke kolom; de scène begint met dezelfde som. Probeer daar ook 9 + 8: dat vraagt een vijfde bit.

Laden

Sleep om te draaien. Scroll of knijp om te zoomen.

A = 0101 (5) en B = 0011 (3). Overdrachten lopen vanaf rechts door drie plaatsen en de som is 1000 (8). Tik op een bit van A of B of kies een getal. Probeer 9 + 8: 17 vraagt een vijfde bit, de uitgaande overdracht links.

De rechter kolom heeft maar twee poorten nodig

Bekijk de rechter kolom apart. Het antwoordbit, de som, is 1 als precies één ingang 1 is: de XOR-regel. De overdracht is alleen 1 als beide ingangen 1 zijn: de AND-regel. XOR en AND naast elkaar met dezelfde twee ingangen tellen dus twee bits op. Dit heet een halve opteller. ‘Half’ omdat hij geen overdracht van rechts kan ontvangen.

De andere kolommen tellen drie bits op

In elke andere kolom komen drie bits samen: één van elk getal en de overdracht van rechts. Een volledige opteller neemt alle drie. De som is A XOR B XOR inkomende overdracht, dus 1 bij een oneven aantal bits met waarde 1. De uitgaande overdracht is 1 als minstens twee bits 1 zijn. Twee halve optellers en een OR maken één volledige. Verbind vier volledige optellers met elke overdracht naar de linkerbuur en je hebt een opteller van 4 bits. Elke overdracht moet van rechts naar links lopen voor de laatste kolom vaststaat: een ripple-carry-opteller. Echte processors tellen 64-bits getallen op met slimmere schakelingen die overdrachten vooraf berekenen, maar de kolomregel blijft gelijk.

ABInkomende overdrachtSomUitgaande overdracht
00000
01010
11001
10101
11111

Wat gebeurt er als de uitkomst te groot is?

Vier bits bewaren 0 tot 15. 9 plus 8 is echt 17, binair 10001 met vijf bits. Een register van vier bits bewaart 0001, of 1. De overdracht links waarschuwt: overflow. 15 + 1 laat bij vier bits 0000 over. Processors zetten een vlag zodat programma's het kunnen merken. Aftrekken gebruikt dezelfde opteller. Voor A − B keert de processor alle bits van B om en telt 1 op: het tweecomplement van B. Dat telt hij bij A op en laat de extra overdracht vallen. Voor 5 − 3 met vier bits: 3 is 0011, omgekeerd 1100, plus 1 geeft 1101. Dan 0101 + 1101 = 10010; vier bits houden 0010 over, of 2.

Vermenigvuldigen is schuiven en optellen

Vermenigvuldigen gebruikt dezelfde delen. Binair maal 2 schuift elke bit één plaats links, zoals decimaal maal 10 een nul toevoegt: 0011 (3) wordt 0110 (6). Voor 5 × 3 gebruik je 3 = 2 + 1. Dus 5 × 3 = 5 × 2 + 5 × 1 = 1010 + 0101 = 1111, of 15. Een vermenigvuldigingsschakeling schuift en telt zo op, één bit met waarde 1 van het tweede getal tegelijk.

Veelgemaakte fouten
  • ‘1 + 1 = 2, dus de uitkomst past in één bit.’ Een bit bewaart alleen 0 of 1. 1 + 1 = 10: sombit 0, overdracht 1. Laat je die weg, dan wordt het antwoord 0: fout.
  • ‘Een halve opteller kan getallen van elke lengte optellen.’ Een halve opteller heeft geen ingang voor overdracht van rechts en werkt dus alleen uiterst rechts. Elke andere kolom vraagt een volledige opteller met drie ingangen. Een opteller van 4 bits kan één halve en drie volledige gebruiken.
  • ‘Overflow stopt de computer met een fout.’ De opteller houdt alleen de passende bits. 9 + 8 met vier bits geeft 0001, een fout antwoord dat normaal lijkt. De processor zet een vlag die het programma moet controleren.
  • ‘Aftrekken vraagt een eigen aftrekschakeling.’ Keer B om, tel 1 op en tel dat met dezelfde opteller bij A. 5 − 3: 0101 + 1101 = 10010; de vier laagste bits 0010 zijn 2.
Voor de docentGeef 0101 + 0011 vóór je ‘opteller’ zegt en laat overdrachten boven de kolommen schrijven. De meeste tabellen van halve en volledige optellers zijn dan uit het eigen werk af te lezen. De overgang naar volledig is lastig. Wijs naar kolom twee en vraag hoeveel bits ze optelden: drie. Speel de ripple carry met vier mensen die een overdrachtskaart links doorgeven. Werk tweecomplement langzaam uit op het bord: de scène trekt niet af. Doe 5 − 3 en controleer 0010 = 2.
  1. Wat is 1 + 1 binair?
  2. Welke poort geeft het sombit in een halve opteller?
    • XOR
    • AND
    • OR
    • NOT
  3. Welke poort geeft de overdracht in een halve opteller?
    • AND
    • XOR
    • OR
    • NAND
  4. Hoeveel invoerbits neemt een volledige opteller?
  5. Een volledige opteller krijgt A = 1, B = 1, inkomende overdracht = 1. Wat is het sombit?
  6. Tel 0110 en 0011 op. Geef vier bits.
  7. Een register van 4 bits telt 9 + 8 op en bewaart vier bits. Welk getal bevat het?
  8. Wat is het tweecomplement van 0011 met 4 bits?
  9. Hoeveel volledige optellers vraagt een ripple-carry-opteller voor getallen van 8 bits?
  10. Wat is de grootste som van twee getallen van 4 bits?
Belangrijkste punten
  • Halve opteller: som = A XOR B, overdracht = A AND B.
  • Volledige opteller: drie ingangen; som 1 bij een oneven aantal bits met waarde 1, overdracht bij minstens twee.
  • Volledige optellers in een keten vormen een ripple-carry-opteller; overdracht loopt van rechts naar links.
  • Overflow: het resultaat vraagt meer bits dan het register heeft. Aftrekken telt het tweecomplement op.
Bronnen van deze cursus (10)
  • (checked 2026-10-17)
  • Standards: NIST, "Prefixes for binary multiples" (physics.nist.gov/cuu/Units/binary.html: IEC approved kibi, mebi, gibi in December 1998; 1 B = 8 bit; 1 MiB = 1 048 576 B; 1 MB = 1 000 000 B; 1 GiB = 1 073 741 824 B; historical note: memory makers usually mean 2²⁰ bytes by megabyte, storage makers 1 000 000, and the "1.44 MB" diskette uses a megabyte of 1 024 000 bytes)
  • IETF RFC 20 "ASCII format for Network Interchange" (1969, 7-bit codes, A = 65, a = 97, 0 = 48)
  • IETF RFC 3629 "UTF-8, a transformation format of ISO 10646" (2003: 1 to 4 octets per character, ASCII unchanged, code points up to U+10FFFF, U+0800 to U+FFFF take three octets, "the first octet of a multi-octet sequence indicates the number of octets", example U+D55C U+AD6D U+C5B4 = ED 95 9C EA B5 AD EC 96 B4)
  • Official documentation: MDN Web Docs, "<color>" (hexadecimal colour notation #RRGGBB)
  • Intel, "Intel Chips" timeline poster (2012: Intel 4004 of 1971 with 2,300 transistors; 2nd generation Core 2010 with 1.16 billion)
  • Teaching model: the toy computer in the network-lab scene (16 cells of 8 bits, 4-bit opcode and 4-bit address) is made for this course, not a real chip. History blocks only (the logic-gates story and the von Neumann paragraph of the-cpu): George Boole, An Investigation of the Laws of Thought (1854, Project Gutenberg 15114)
  • Claude E. Shannon, "A Symbolic Analysis of Relay and Switching Circuits", Transactions of the AIEE vol. 57 (1938)
  • abstract of his MIT master's thesis. Computer History Museum, The Silicon Engine, "1947: Invention of the Point-Contact Transistor" (Bardeen and Brattain, December 1947, germanium)
  • John von Neumann, "First Draft of a Report on the EDVAC" (30 June 1945, Moore School, reprinted in IEEE Annals of the History of Computing 15:4, 1993).

Geraadpleegd: 2026-10-17