Stellenwerte im Binärsystem
Dezimalzahlen nutzen zehn Ziffern, und jede Stelle ist zehnmal so viel wert wie die Stelle rechts daneben: Einer, Zehner, Hunderter. Das Binärsystem funktioniert genauso mit zwei Ziffern, 0 und 1, daher ist jede Stelle doppelt so viel wert wie die rechts daneben. Das Bit ganz rechts ist 1 wert, das nächste 2, dann 4, 8, 16 und so weiter, immer doppelt so viel.
Acht Bits ergeben ein Byte, und die Stellenwerte eines Bytes lohnen sich zum Auswendiglernen, weil sie in der Informatik überall vorkommen, von Dateigrößen bis zu Netzmasken.
| Bitposition | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Stellenwert | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Binär in Dezimal, Schritt für Schritt
Nimm 11010110 als Beispiel. Schreib die Stellenwerte über oder unter die Ziffern, beginnend mit 1 ganz rechts. Dann addierst du nur die Stellenwerte, unter denen eine 1 steht: 128 + 64 + 16 + 4 + 2 = 214. Das ist schon die ganze Methode, und sie funktioniert für Zahlen jeder Länge.
Bei langen Zahlen teilst du die Bits von rechts in Vierergruppen, wandelst jede Gruppe einzeln in Hex und dann in Dezimal um, oder du fügst die Zahl einfach in den Umrechner ein, der mit jeder Länge arbeitet und nicht rundet.
| Binär | Rechnung | Dezimal |
|---|---|---|
| 101 | 4 + 1 | 5 |
| 1111 | 8 + 4 + 2 + 1 | 15 |
| 100000 | 32 | 32 |
| 11010110 | 128 + 64 + 16 + 4 + 2 | 214 |
| 11111111 | 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 | 255 |
| 11111101010 | 1024 + 512 + 256 + 128 + 64 + 32 + 8 + 2 | 2026 |
Hier ausprobieren: Binär in Dezimal
Vollständige Tool-Seite öffnenDezimal in Binär: durch zwei teilen
Die umgekehrte Richtung funktioniert mit wiederholtem Teilen. Teile die Zahl durch 2, schreib den Rest auf (0 oder 1) und mach mit dem Ergebnis weiter, bis es 0 ist. Die Reste vom letzten zum ersten gelesen ergeben die Binärzahl.
Für 214: 214 / 2 = 107 Rest 0, 107 / 2 = 53 Rest 1, 53 / 2 = 26 Rest 1, 26 / 2 = 13 Rest 0, 13 / 2 = 6 Rest 1, 6 / 2 = 3 Rest 0, 3 / 2 = 1 Rest 1, 1 / 2 = 0 Rest 1. Liest du die Reste von unten nach oben, ergibt das 11010110, also genau die Zahl, mit der wir oben angefangen haben.
Ein anderer Weg ist, jeweils den größten Stellenwert abzuziehen, der noch passt: 214 minus 128 lässt 86, minus 64 lässt 22, minus 16 lässt 6, minus 4 lässt 2, minus 2 lässt 0. Schreib eine 1 für jeden verwendeten Stellenwert und eine 0 für die anderen.
Hex: vier Bits pro Ziffer
Lange Binärzahlen sind schwer zu lesen, deshalb schreiben Programmierer sie hexadezimal. Hex hat sechzehn Ziffern, 0 bis 9 und A bis F, und eine Hex-Ziffer steht für genau vier Bits. Zum Umrechnen teilst du die Binärzahl von rechts in Vierergruppen und ersetzt jede Gruppe mithilfe der Tabelle. Aus 1101 0110 wird D6, und D6 ist dezimal 13 x 16 + 6 = 214.
| Binär | Hex | Dezimal | Binär | Hex | Dezimal |
|---|---|---|---|---|---|
| 0000 | 0 | 0 | 1000 | 8 | 8 |
| 0001 | 1 | 1 | 1001 | 9 | 9 |
| 0010 | 2 | 2 | 1010 | A | 10 |
| 0011 | 3 | 3 | 1011 | B | 11 |
| 0100 | 4 | 4 | 1100 | C | 12 |
| 0101 | 5 | 5 | 1101 | D | 13 |
| 0110 | 6 | 6 | 1110 | E | 14 |
| 0111 | 7 | 7 | 1111 | F | 15 |
Negative Zahlen: das Zweierkomplement
Computer speichern negative Ganzzahlen im Zweierkomplement. Das oberste Bit einer Zahl mit fester Breite hat ein negatives Gewicht: In 8 Bit ist das Bit ganz links -128 statt 128 wert. 11111111 ist also -128 + 127 = -1, und 10000000 ist -128.
Um das Muster einer negativen Zahl zu finden, schreibst du den positiven Wert binär, drehst jedes Bit um und addierst 1. Für -6 in 8 Bit: 6 ist 00000110, umgedreht 11111001, plus 1 ergibt 11111010. Dieselben Bits ohne Vorzeichen gelesen ergeben 250, deshalb ist es wichtig zu wissen, ob ein Wert vorzeichenbehaftet ist. Schalte im Umrechner Vorzeichenbehaftet ein und wähle die Bitbreite, um beide Lesarten zu sehen.
Binäre Nachkommastellen
Ziffern nach dem Binärkomma sind ein Halb, ein Viertel, ein Achtel und so weiter wert. 0,101 ist 0,5 + 0,125 = 0,625. Viele einfache Dezimalbrüche lassen sich binär nicht exakt schreiben: 0,1 wird zu 0,000110011001100... mit endlos wiederholtem 0011. Das ist der Grund, warum 0,1 + 0,2 in den meisten Programmiersprachen nicht genau 0,3 ergibt. Der Umrechner zeigt solche Perioden in Klammern, zum Beispiel 0,0(0011). Als Trennzeichen kannst du dort Komma oder Punkt eingeben.