Binärrechner
Rechnen Sie mit Binärzahlen: Addition, Subtraktion, Multiplikation, Division mit Rest, bitweises UND, ODER, XOR und NICHT sowie Links- und Rechtsverschiebungen. Geben Sie zwei Binärzahlen ein und erhalten Sie exakte Ergebnisse im Binär-, Dezimal-, Hexadezimal- und Oktalsystem mit nachvollziehbarem Rechenweg.
Binärzahlen addieren, subtrahieren, multiplizieren und verknüpfen
Grundregeln für das Rechnen mit Binärzahlen
Dabei gilt:
- \(b_i\) — ein einzelnes Bit mit dem Wert 0 oder 1
- \(i\) — die Bitposition, von rechts beginnend bei 0 gezählt
- \(2^i\) — der Stellenwert dieser Position
Binärzahlen bestehen nur aus den Ziffern 0 und 1. Jede Stelle hat den Wert einer Zweierpotenz. Gerechnet wird wie im Dezimalsystem, nur gelten andere Regeln für die einzelnen Stellen: Bei der Addition ist \(0+0=0\), \(0+1=1\) und \(1+1=10_2\) (0 schreiben, 1 übertragen). Bei der Subtraktion ist \(1-0=1\) und \(1-1=0\). Für \(0-1\) wird von der nächsten Stelle eine 1 mit dem Wert 2 entliehen; das Ergebnis an der aktuellen Stelle ist 1.
Bei bitweisen Operationen hängt jedes Ergebnisbit nur von den beiden Bits an derselben Stelle ab, wenn man die Zahlen untereinanderschreibt. Eine Linksverschiebung um \(k\) Stellen entspricht innerhalb eines Worts mit fester Bitbreite einer Multiplikation mit \(2^k\). Eine arithmetische Rechtsverschiebung um \(k\) Stellen entspricht einer Division durch \(2^k\), wobei gegen \(-\infty\) gerundet wird.
Binärrechner: Rechenbeispiel
Beispiel: Addieren Sie die Binärzahlen A = 1011 und B = 0110 (die voreingestellten Werte des Rechners).
Wandeln Sie zunächst beide Zahlen anhand der Stellenwerte \(2^3, 2^2, 2^1, 2^0\) ins Dezimalsystem um:
\[ 1011_2 = 8 + 0 + 2 + 1 = 11_{10}, \qquad 0110_2 = 0 + 4 + 2 + 0 = 6_{10} \]
Addieren Sie nun von rechts nach links Stelle für Stelle. Ergibt die Summe an einer Stelle mindestens 2, übertragen Sie eine 1 auf die nächste Stelle:
\[ 1011_2 + 0110_2 = 10001_2 \]
Die Probe im Dezimalsystem: \(11 + 6 = 17\), und tatsächlich ist \(10001_2 = 16 + 1 = 17\).
Ergebnis: 10001 im Binärsystem, 17 im Dezimalsystem, 0x11 im Hexadezimalsystem und 0o21 im Oktalsystem.
So verwenden Sie den Rechner
- Wählen Sie im Dropdown-Menü eine Rechenoperation: Addition, Subtraktion, Multiplikation, Division mit Rest, einen der bitweisen Operatoren (UND, ODER, XOR, NICHT) oder eine Bitverschiebung (A << B, A >> B).
- Geben Sie die erste Zahl (A) ausschließlich mit den Ziffern 0 und 1 ein. Für negative Werte können Sie ein Minuszeichen voranstellen. Leerzeichen innerhalb der Zahl werden ignoriert.
- Geben Sie die zweite Zahl (B) auf dieselbe Weise ein. Bei NICHT wird nur A verwendet; bei Bitverschiebungen gibt B die Anzahl der Stellen an, ebenfalls als Binärzahl.
- Wählen Sie für NICHT sowie für Links- und Rechtsverschiebungen eine Bitbreite (8, 16, 32 oder 64 Bit). Das Ergebnis dieser drei Operationen ist ein Wort dieser Breite im Zweierkomplement.
- Sehen Sie sich die Ergebnisse an: die Binärzahl und ihre Entsprechungen im Dezimal-, Hexadezimal- und Oktalsystem. Bei der Division wird auch der Rest angezeigt. Unter Rechenschritte sehen Sie, wie das Ergebnis zustande kommt.
Was Rechnen mit Binärzahlen bedeutet
Das Binärsystem ist das Zahlensystem digitaler Hardware: Ein Bit ist 0 oder 1, weil ein Transistor aus- oder eingeschaltet ist. Eine Binärzahl ist eine Folge von Bits, bei der die von rechts gezählte Position \(i\) den Stellenwert \(2^i\) hat. 1011 bedeutet also nicht „eintausendelf“, sondern \(1\cdot8 + 0\cdot4 + 1\cdot2 + 1\cdot1 = 11\). Wenn Sie die Stellenwerte kennen, können Sie die vier Grundrechenarten wie gewohnt schriftlich ausführen – nur erfolgt der Übertrag schon bei 2 statt bei 10.
Bitweise Operationen funktionieren anders: Sie verarbeiten jede Stelle unabhängig von den anderen. Deshalb eignen sie sich besonders für Bitmasken und Flags. UND lässt nur die Bits stehen, die in beiden Zahlen gesetzt sind. ODER lässt Bits stehen, die in mindestens einer Zahl gesetzt sind. XOR lässt Bits stehen, die in genau einer der beiden Zahlen gesetzt sind. Die folgende Tabelle zeigt die Regeln für eine einzelne Stelle:
| A | B | A UND B | A ODER B | A XOR B |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
Mit Bitverschiebungen lassen sich Binärzahlen schnell mit Zweierpotenzen multiplizieren oder durch sie teilen. Verschiebt man 1011 um 2 Stellen nach links, erhält man 101100. Das entspricht \(11 \times 4 = 44\) – sofern links keine Bits über die Wortgrenze hinausgeschoben werden. Deshalb ist die Bitbreite wichtig: In einem 32-Bit-Register kann 1 noch um 31 Stellen nach links verschoben werden. Bei einer Verschiebung um 32 Stellen geht das Bit verloren und das Ergebnis wird 0. Diese Bitmaskenlogik wird in der Informatik für vieles genutzt, von Bildmasken bis zur Unterteilung von IP-Netzen. Ein CIDR-Rechner wendet sie auf Adressbereiche an.
Wenn Sie eine einzelne Zahl zwischen Zahlensystemen umrechnen möchten, statt mit zwei Zahlen zu rechnen, verwenden Sie den Binärumrechner. Der Hexadezimalumrechner übernimmt dasselbe für die in der Programmierung häufig verwendete Hexadezimalschreibweise.
Annahmen, Grenzen und Tipps
- Bis zu 1024 Bit pro Eingabe. Alle arithmetischen Berechnungen verwenden exakte Ganzzahlen. Auch bei sehr langen Binärzahlen ist das Ergebnis daher exakt: Bei Addition, Subtraktion, Multiplikation, Division und bitweisen Operationen gibt es weder Rundung noch Überlauf.
- NICHT und Bitverschiebungen haben eine feste Bitbreite. Sie werden innerhalb der gewählten Wortbreite ausgewertet, wie in einem CPU-Register. Die hexadezimalen und oktalen Ergebnisse dieser Operationen werden als vorzeichenlose Bitmuster dieser Breite mit führenden Nullen angezeigt.
- Bei der Division wird der Quotient in Richtung null abgeschnitten und der Rest ausgegeben. Das entspricht dem Verhalten von
/und%in JavaScript, C und Java: A = B × Q + R mit |R| < |B|. R hat dabei das Vorzeichen von A. - Tabellen zum Rechenweg (Überträge, Entleihungen und bitweise Berechnungen) werden für Eingaben mit bis zu 64 Bit erstellt; bei der Multiplikation dürfen in B höchstens 24 Bits gesetzt sein. Längere Eingaben werden weiterhin exakt berechnet, jedoch ohne diese tabellarische Aufschlüsselung.
- Führende Nullen ändern den Zahlenwert nicht:
0110und110stehen beide für 6. Bei NICHT und Bitverschiebungen bestimmen sie jedoch mit, wie das Wort dargestellt wird. Wählen Sie die Bitbreite daher ausdrücklich aus, wenn die führenden Nullen wichtig sind. - Negative Zahlen können nur mit vorangestelltem Minuszeichen eingegeben werden. Der Rechner verarbeitet sie intern und zeigt negative Ergebnisse mit einem Minuszeichen an, nicht als Zweierkomplement-Bitmuster. Ausnahmen sind NICHT und Bitverschiebungen.
Häufig gestellte Fragen
Wie wandle ich eine Binärzahl von Hand ins Dezimalsystem um?
Schreiben Sie über die Bits von rechts nach links die Zweierpotenzen: 1, 2, 4, 8, 16 und so weiter. Addieren Sie dann die Werte aller Stellen, an denen eine 1 steht. Zum Beispiel: \(1101_2 = 8 + 4 + 0 + 1 = 13\). Das Bit ganz rechts (Position 0) hat immer den Stellenwert \(2^0 = 1\); mit jedem Schritt nach links verdoppelt sich der Stellenwert.
Wie wandle ich eine Dezimalzahl Schritt für Schritt in eine Binärzahl um?
Teilen Sie die Zahl wiederholt durch 2 und notieren Sie bei jedem Schritt den Rest, bis der Quotient 0 ist. Lesen Sie die Reste anschließend von unten nach oben. Für 13 ergibt sich: \(13 \div 2 = 6\) Rest 1, \(6 \div 2 = 3\) Rest 0, \(3 \div 2 = 1\) Rest 1, \(1 \div 2 = 0\) Rest 1. Die Restfolge 1101 ist die Binärzahl.
Warum ist 1 + 1 im Binärsystem gleich 10?
Weil es im Binärsystem keine Ziffer 2 gibt. Ergibt eine Stelle die Summe 2, schreiben Sie dort eine 0 und übertragen eine 1 auf die nächste Stelle links – so wie beim Rechnen im Dezimalsystem ein Übertrag entsteht, wenn eine Stelle mehr als 9 ergibt. Daher gilt \(1 + 1 = 10_2\), gesprochen „eins null“. Das ist die binäre Schreibweise für zwei: eine Zweiergruppe und keine Einer.
Was ist der Unterschied zwischen UND, ODER und XOR?
Alle drei Operationen vergleichen die beiden Zahlen Stelle für Stelle. UND ergibt nur dort 1, wo beide Zahlen eine 1 haben – damit lassen sich Bits auslesen oder maskieren. ODER ergibt 1, wo mindestens eine Zahl eine 1 hat – damit lassen sich Bits setzen. XOR ergibt 1, wo genau eine der beiden Zahlen eine 1 hat – damit lassen sich Bits umschalten. XOR einer Zahl mit sich selbst ergibt immer 0.
Warum muss ich für NICHT und Bitverschiebungen eine Bitbreite wählen?
NICHT und Bitverschiebungen verändern die Anzahl der Bits im Ergebnis. Deshalb hängt das Ergebnis von der Wortbreite ab, wie bei einem CPU-Register. In einem 8-Bit-Wort kehrt NICHT 0000 0101 jedes Bit einschließlich der führenden Nullen um. Das ergibt 1111 1010. Ebenso entspricht eine Linksverschiebung um k Stellen nur dann einer Multiplikation mit \(2^k\), wenn links keine Bits über die Wortgrenze hinausgeschoben werden. Andernfalls kommt es zum Überlauf.
Was passiert mit negativen Zahlen im Binärsystem?
Dieser Rechner nimmt negative Zahlen mit vorangestelltem Minuszeichen an und berechnet exakte Ergebnisse mit Vorzeichen. Bei NICHT und Bitverschiebungen mit fester Bitbreite werden negative Zahlen dagegen im Zweierkomplement verarbeitet. Dabei wird \(-A\) in einem Wort mit w Bit als \(2^w - A\) gespeichert, und NICHT A entspricht \(-A - 1\). Deshalb ergibt NICHT 0 bei jeder Bitbreite den Wert −1.
Welche Fehler passieren beim Rechnen mit Binärzahlen von Hand besonders häufig?
Häufig wird bei einer Summe von 2 der Übertrag vergessen oder beim Subtrahieren 10 statt 2 von der nächsten Stelle entliehen. Auch wird das Ergebnis manchmal als Dezimalzahl gelesen: 1011 steht für elf, nicht für eintausendelf. Achten Sie außerdem auf die Verschiebungsrichtung: Nach links verschieben entspricht einer Multiplikation mit \(2^k\), nach rechts verschieben einer Division dadurch, bei der der Rest wegfällt. Verschiebt man 1011 (11) um 1 Stelle nach rechts, erhält man 101 (5), nicht 22.
Kann bei der Binärdivision ein Bruch als Ergebnis herauskommen?
Nein. Dieser Rechner führt eine Ganzzahldivision mit Rest aus, wie die Operatoren / und % in JavaScript, C oder Java. Der Quotient wird in Richtung null abgeschnitten. Für den Rest gilt A = B × Q + R; er hat das Vorzeichen des Dividenden. Eine Division durch null wird mit einer Fehlermeldung abgewiesen, da dafür kein Quotient definiert ist.