Binärsystem verstehen: So rechnet ein Computer mit Nullen und Einsen
Im letzten Beitrag stand die Bitfolge 01000001 für den Buchstaben A. Dahinter steckt die Zahl 65. Wie kommt man von acht Nullen und Einsen auf eine 65? Mit einer Rechenmethode, die du im Prinzip schon aus der Grundschule kennst. Sie sieht nur auf den ersten Blick fremd aus.
Das Prinzip: Ein Stellenwertsystem mit zwei Ziffern
Das Dezimalsystem, mit dem du täglich rechnest, hat zehn Ziffern: 0 bis 9. Die Position einer Ziffer bestimmt, wie viel sie wert ist. Bei der Zahl 365 stehen die 3 für Hunderter, die 6 für Zehner und die 5 für Einer:
365 = 3 × 100 + 6 × 10 + 5 × 1
= 3 × 10² + 6 × 10¹ + 5 × 10⁰
Die Stellenwerte sind Potenzen der Zahl 10. Die 10 heißt deshalb Basis des Systems.
Das Binärsystem, auch Dualsystem genannt, funktioniert genauso. Es hat nur die Basis 2 und damit nur zwei Ziffern, 0 und 1. Die Stellenwerte sind Potenzen von 2:
| Stelle (von rechts) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Potenz | 2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ |
| Stellenwert | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Diese Reihe solltest du auswendig kennen. Sie ist das wichtigste Werkzeug für alle Umrechnungen und taucht später im Subnetting ständig wieder auf. Du kannst sie dir merken, indem du bei 1 anfängst und jedes Mal verdoppelst.
Binär in Dezimal umrechnen
Du schreibst die Stellenwerte über die Bitfolge und addierst alle Werte, unter denen eine 1 steht. Die Nullen zählen nicht.
Nehmen wir 01000001 aus dem Einstieg:
Stellenwert: 128 64 32 16 8 4 2 1
Bitfolge: 0 1 0 0 0 0 0 1
64 + 1 = 65
Ein zweites Beispiel, 10110101:
Stellenwert: 128 64 32 16 8 4 2 1
Bitfolge: 1 0 1 1 0 1 0 1
128 + 32 + 16 + 4 + 1 = 181
Der häufigste Denkfehler an dieser Stelle: Man beginnt links mit dem Wert 1. Die Zählung startet aber rechts. Das ganz rechte Bit hat den Wert 1, das ganz linke bei acht Stellen den Wert 128.
Dezimal in Binär umrechnen
Hier gibt es zwei Wege. Beide führen zum selben Ergebnis, welchen du nimmst, ist Geschmackssache.
Weg 1: Stellenwerte abziehen
Du gehst die Stellenwerte von links nach rechts durch. Passt der Wert noch in die Restzahl, schreibst du eine 1 und ziehst ihn ab. Passt er nicht, schreibst du eine 0.
Beispiel: Die Zahl 200 soll in Binär umgewandelt werden.
128 passt in 200 → 1, Rest 72
64 passt in 72 → 1, Rest 8
32 passt nicht → 0
16 passt nicht → 0
8 passt in 8 → 1, Rest 0
4 passt nicht → 0
2 passt nicht → 0
1 passt nicht → 0
200 = 11001000
Zur Kontrolle rechnest du zurück: 128 + 64 + 8 = 200.
Weg 2: Wiederholt durch 2 teilen
Du teilst die Zahl durch 2 und notierst den Rest, der immer 0 oder 1 ist. Mit dem Ergebnis der Division machst du weiter, bis 0 herauskommt. Die Reste liest du am Ende von unten nach oben.
Beispiel: Die Zahl 37.
37 ÷ 2 = 18 Rest 1
18 ÷ 2 = 9 Rest 0
9 ÷ 2 = 4 Rest 1
4 ÷ 2 = 2 Rest 0
2 ÷ 2 = 1 Rest 0
1 ÷ 2 = 0 Rest 1
Von unten nach oben gelesen: 100101
Kontrolle: 32 + 4 + 1 = 37. Wichtig ist die Leserichtung. Wer die Reste von oben nach unten liest, erhält eine gespiegelte und damit falsche Zahl.
Wie groß kann eine Binärzahl werden?
Mit 8 Bit sind alle Stellen auf 1, wenn die Summe aller Stellenwerte erreicht ist: 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255. Mit 8 Bit stellst du also die Zahlen 0 bis 255 dar, das sind 256 Werte. Das passt zu dem, was du im Beitrag Bit und Byte gesehen hast.
Allgemein gilt für n Bit ohne Vorzeichen: Der größte Wert ist 2n − 1.
| Anzahl Bits | Kleinster Wert | Größter Wert |
|---|---|---|
| 4 | 0 | 15 |
| 8 | 0 | 255 |
| 16 | 0 | 65.535 |
| 32 | 0 | 4.294.967.295 |
Was passiert, wenn du die 256 mit 8 Bit darstellen willst? Es geht nicht. Das Ergebnis passt nicht mehr in die verfügbare Stellenzahl, man spricht von einem Überlauf. Genau deshalb steht in jeder IPv4-Adresse pro Block höchstens die 255.
Beispiel aus der Praxis: Die IP-Adresse im Binärsystem
Eine IPv4-Adresse wie 192.168.10.0 besteht aus vier Zahlen, die jeweils 8 Bit groß sind. Jede dieser Zahlen heißt Oktett. Binär sieht die Adresse so aus:
192 = 11000000
168 = 10101000
10 = 00001010
0 = 00000000
192.168.10.0 = 11000000.10101000.00001010.00000000
Zum Beispiel setzt sich die 168 aus 128 + 32 + 8 zusammen, daher stehen die Einsen an diesen drei Stellen. Wer Subnetting später rechnen will, braucht genau diese Umrechnung. Die Netzmaske 255.255.255.0 besteht in Binär aus vierundzwanzig Einsen gefolgt von acht Nullen. Was das für ein Netz bedeutet, klären wir in der Netzwerk-Reihe ausführlich.
Binär addieren
Das Addieren funktioniert wie im Dezimalsystem, nur dass der Übertrag früher kommt. Es gibt vier Fälle:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10 (also 0, Übertrag 1)
Beispiel: 0101 + 0011, also 5 + 3.
0101
+ 0011
------
1000
Wir gehen von rechts nach links vor. Ganz rechts ergibt 1 + 1 eine 0 mit Übertrag 1. In der nächsten Stelle ergibt 0 + 1 + Übertrag 1 wieder 0 mit Übertrag. In der dritten Stelle ergibt 1 + 0 + Übertrag 1 ebenfalls 0 mit Übertrag. In der vierten Stelle bleibt 0 + 0 + Übertrag 1 = 1. Das Ergebnis 1000 ist die 8. Wer hier 1 + 1 = 2 schreibt, hat den häufigsten Fehler der Binäraddition gemacht, denn eine 2 gibt es im Binärsystem nicht.
Und negative Zahlen?
Bisher haben wir nur positive Zahlen betrachtet. Ein Computer hat aber kein Minuszeichen, nur Bits. Üblich ist deshalb das Zweierkomplement. Bei dieser Darstellung zeigt das linke Bit an, ob die Zahl negativ ist. Bei 8 Bit stellst du damit Werte von −128 bis 127 dar.
Um eine Zahl negativ zu machen, gehst du so vor: alle Bits umdrehen und anschließend 1 addieren. Beispiel: −5.
5 = 00000101
umgedreht = 11111010
+ 1 = 11111011 → das ist −5
Der Vorteil: Der Rechner kann Subtraktionen mit demselben Addierwerk erledigen wie Additionen. Für den Einstieg reicht es, das Prinzip zu kennen. In Prüfungen wird gelegentlich gefragt, welchen Wertebereich ein vorzeichenbehafteter Datentyp hat. Mit n Bit sind es −2n−1 bis 2n−1 − 1.
Mit dem Rechner prüfen
Du musst nicht jede Umrechnung von Hand kontrollieren. Der Windows-Rechner hat einen Modus „Programmierer“, der Binärzahlen direkt umrechnet. In der PowerShell erledigt das auch ein Einzeiler. Der folgende Befehl wandelt die Dezimalzahl 65 in Binär um:
[Convert]::ToString(65, 2)
Die 2 am Ende gibt die Basis an. Die Ausgabe lautet 1000001, führende Nullen lässt der Befehl weg. Umgekehrt wandelt dieser Befehl die Binärzahl in Dezimal um:
[Convert]::ToInt32("01000001", 2)
Das Ergebnis ist 65. Unter Linux gelangst du mit dem Programm bc zum gleichen Ziel, falls es installiert ist:
echo "obase=2; 65" | bc
Der Befehl gibt 1000001 aus. Prüf deine Ergebnisse trotzdem zuerst selbst, denn in der Prüfung hast du keinen Rechner.
Typische Fehler
- Falsche Zählrichtung: Die Stellenwerte beginnen rechts mit 1 und wachsen nach links.
- Reste falsch herum gelesen: Bei der Division durch 2 liest du von unten nach oben.
- 1 + 1 = 2: Im Binärsystem ergibt das 10, also 0 mit Übertrag.
- Führende Nullen vergessen: Bei Oktetten schreibst du immer alle 8 Stellen, also 00001010 statt 1010.
- Wertebereich überschritten: Mit 8 Bit ist bei 255 Schluss.
Zum Üben
Rechne die folgenden Aufgaben selbst und vergleiche dann mit den Lösungen darunter.
- Wandle 00101101 in eine Dezimalzahl um.
- Wandle die Dezimalzahl 100 in eine Binärzahl um.
- Welchen Wert hat 11111111?
- Addiere 1011 und 0110. Gib das Ergebnis binär und dezimal an.
Lösungen: (1) 32 + 8 + 4 + 1 = 45. (2) 64 + 32 + 4 = 100, also 1100100 oder mit 8 Stellen 01100100. (3) 255. (4) 1011 (11) + 0110 (6) = 10001, das sind 17. Das Ergebnis braucht fünf Stellen, weil die Summe größer als 15 ist.
Das solltest du dir merken
- Das Binärsystem hat die Basis 2 und nur die Ziffern 0 und 1.
- Die Stellenwerte sind Zweierpotenzen: 1, 2, 4, 8, 16, 32, 64, 128 und so weiter, von rechts nach links.
- Binär nach Dezimal: Stellenwerte unter den Einsen addieren.
- Dezimal nach Binär: Stellenwerte abziehen oder wiederholt durch 2 teilen und die Reste von unten nach oben lesen.
- Mit n Bit stellst du ohne Vorzeichen Werte von 0 bis 2n − 1 dar.
- Negative Zahlen werden meist im Zweierkomplement gespeichert.
Das Binärsystem ist nur eines von mehreren Zahlensystemen, die in der IT vorkommen. Weil lange Bitfolgen schwer lesbar sind, nutzt man in der Praxis häufig das Hexadezimalsystem als Kurzschreibweise. Wie das funktioniert und wie du zwischen den Systemen wechselst, zeigt der Beitrag Zahlensysteme verstehen.


