Wie Gatter Zahlen addieren
Ein XOR- und ein AND-Gatter reichen, um zwei Bits zu addieren. Häng vier Volladdierer hintereinander, und du kannst zwei beliebige Zahlen von 0 bis 15 addieren.
Probier das, bevor du weiterliest. Addiere 0101 und 0011 auf Papier im Binärsystem, so wie du dezimal addierst, und schreib jeden Übertrag über die nächste Spalte. Du brauchst nur drei Tatsachen: 0 + 0 = 0, 0 + 1 = 1 und 1 + 1 = 10, also 0 schreiben und 1 übertragen. Mit einem eingehenden Übertrag ist 1 + 1 + 1 = 11, du schreibst also 1 und überträgst 1. Die Rechnung steht im nächsten Absatz, deck ihn also zuerst ab.
Hier ist die Rechnung. Rechte Spalte: 1 + 1 = 10, 0 schreiben, 1 übertragen. Nächste: 0 + 1 plus Übertrag ist wieder 10, 0 schreiben, 1 übertragen. Nächste: 1 + 0 plus Übertrag, 10, 0 schreiben, 1 übertragen. Linke Spalte: 0 + 0 plus Übertrag ist 1. Das Ergebnis ist 1000, also 8, und 5 + 3 = 8. Drei der vier Spalten hatten einen Übertrag. Ein Taschenrechner, ein Spiel und eine Tabellenkalkulation machen am Ende genau das. In einem Prozessor erledigen ein paar Gatter jede Spalte, und die Szene beginnt mit derselben Summe. Probier dort dann 9 + 8. Dafür braucht man ein fünftes Bit.
Zum Drehen ziehen. Zum Zoomen scrollen oder mit zwei Fingern ziehen.
Die rechte Spalte braucht nur zwei Gatter
Sieh dir die rechte Spalte für sich an. Das Ergebnisbit dort, die Summe, ist 1, wenn genau ein Eingang 1 ist. Das ist die XOR-Regel. Der Übertrag ist nur dann 1, wenn beide Eingänge 1 sind. Das ist die AND-Regel. Ein XOR-Gatter und ein AND-Gatter nebeneinander, die dieselben zwei Eingänge bekommen, addieren also zwei Bits. Diese kleine Schaltung ist ein Halbaddierer. „Halb“ ist er nur, weil er keinen Übertrag aus der Spalte rechts von ihm aufnehmen kann.
Die anderen Spalten haben drei Bits zu addieren
In jeder anderen Spalte treffen drei Bits zusammen: eins aus jeder Zahl und der Übertrag von rechts. Ein Volladdierer nimmt alle drei. Seine Summe ist A XOR B XOR Übertrag-ein, das ist 1, wenn eine ungerade Anzahl der drei 1 ist. Sein Übertrag-aus ist 1, wenn mindestens zwei davon 1 sind. Zwei Halbaddierer und ein OR-Gatter ergeben einen Volladdierer. Stell vier Volladdierer nebeneinander, verbinde jeden Übertrag-aus mit dem Übertrag-ein des Addierers links daneben, und du hast einen 4-Bit-Addierer. Jeder Übertrag muss von rechts nach links durchlaufen, bevor die letzte Spalte feststeht, deshalb heißt diese Bauart Ripple-Carry-Addierer. Echte Prozessoren addieren 64-Bit-Zahlen mit raffinierteren Schaltungen, die die Überträge vorausberechnen, aber die Regel in jeder Spalte ist dieselbe.
| A | B | Übertrag ein | Summe | Übertrag aus |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |
Was passiert, wenn das Ergebnis zu groß ist
Vier Bits fassen 0 bis 15. Addiere 9 und 8, dann ist das wahre Ergebnis 17 binär 10001, also fünf Bits. Ein Register, das nur vier Bits behält, speichert 0001, also 1, und der links übrig gebliebene Übertrag ist das Warnzeichen. Das ist ein Überlauf. 15 + 1 hinterlässt in vier Bits 0000. Prozessoren setzen dabei ein Flag, damit Programme es bemerken können. Die Subtraktion benutzt dasselbe Addierwerk. Um A − B zu berechnen, kehrt der Prozessor jedes Bit von B um und addiert 1, das ergibt das Zweierkomplement von B, addiert das dann zu A und verwirft den überzähligen Übertrag. Für 5 − 3 in vier Bits: 3 ist 0011, umgekehrt 1100, plus 1 ergibt 1101. Dann ist 0101 + 1101 = 10010, und mit vier Bits bleibt 0010, also 2.
Multiplizieren ist Verschieben und Addieren
Die Multiplikation entsteht aus denselben Teilen. Im Binärsystem schiebt eine Multiplikation mit 2 jedes Bit um eine Stelle nach links, so wie eine Multiplikation mit 10 im Dezimalsystem eine Null anhängt: Aus 0011 (3) wird 0110 (6). Bei 5 × 3 fällt auf, dass 3 = 2 + 1 ist. Also ist 5 × 3 = 5 × 2 + 5 × 1 = 1010 + 0101 = 1111, also 15. Eine Multiplizierschaltung verschiebt und addiert genau so und nimmt dabei die 1-Bits der zweiten Zahl eins nach dem anderen.
- „1 + 1 = 2, also passt das Ergebnis in ein Bit.“ Ein Bit fasst nur 0 oder 1. 1 + 1 = 10: Das Summenbit ist 0, und eine 1 wird übertragen. Lässt man den Übertrag weg, wird das Ergebnis 0, und das ist falsch.
- „Ein Halbaddierer kann Zahlen beliebiger Länge addieren.“ Ein Halbaddierer hat keinen Eingang für einen Übertrag von rechts, deshalb funktioniert er nur in der rechten Spalte. Jede andere Spalte braucht einen Volladdierer mit drei Eingängen. Ein 4-Bit-Addierer könnte einen Halbaddierer und drei Volladdierer verwenden.
- „Bei einem Überlauf bleibt der Computer mit einer Fehlermeldung stehen.“ Das Addierwerk behält einfach die Bits, für die es Platz hat. 9 + 8 ergibt in vier Bits 0001, ein falsches Ergebnis, das völlig normal aussieht. Der Prozessor setzt ein Flag, und das Programm muss es prüfen.
- „Die Subtraktion braucht eine eigene Subtrahierschaltung.“ Kehr die Bits von B um, addiere 1 und addiere das Ergebnis mit demselben Addierwerk zu A. 5 − 3: 0101 + 1101 = 10010, und die vier niedrigsten Bits, 0010, sind 2.
- Was ist 1 + 1 im Binärsystem?
- Welches Gatter liefert im Halbaddierer das Summenbit?
- XOR
- AND
- OR
- NOT
- Welches Gatter liefert im Halbaddierer den Übertrag?
- AND
- XOR
- OR
- NAND
- Wie viele Eingangsbits nimmt ein Volladdierer?
- Ein Volladdierer bekommt A = 1, B = 1, Übertrag ein = 1. Wie lautet sein Summenbit?
- Addiere 0110 und 0011. Gib vier Bits an.
- Ein 4-Bit-Register addiert 9 + 8 und behält nur vier Bits. Welche Zahl enthält es?
- Wie lautet das 4-Bit-Zweierkomplement von 0011?
- Wie viele Volladdierer braucht ein Ripple-Carry-Addierer für 8-Bit-Zahlen?
- Was ist die größte Summe, die zwei 4-Bit-Zahlen ergeben können?
- Halbaddierer: Summe = A XOR B, Übertrag = A AND B.
- Volladdierer: drei Eingänge; die Summe ist 1 bei einer ungeraden Anzahl von 1-Bits, der Übertrag bei zwei oder mehr.
- Hintereinandergeschaltete Volladdierer bilden einen Ripple-Carry-Addierer; Überträge laufen von rechts nach links.
- Überlauf: Das Ergebnis braucht mehr Bits, als das Register hat. Die Subtraktion addiert das Zweierkomplement.
Quellen zu diesem Kurs (9)
- (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then the teaching model and calculations, history sources last)
- 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)
- 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).
Abgerufen: 2026-10-17