Binär, Dezimal und Hexadezimal: Spickzettel
Binär, Dezimal und Hexadezimal schnell umrechnen: Tabellen, 4-Bit-Gruppen, Beispiele und praktische Regeln für Entwicklung, Unterricht und Debugging.
Beim Debuggen von Bytes, Bitmasken, Farben oder Netzwerkdaten müssen Zahlen oft zwischen Binär-, Dezimal- und Hexadezimalschreibweise wechseln. Dieser Spickzettel fasst die verlässlichen Verfahren zusammen.
Die drei Zahlensysteme
| System | Basis | Ziffern | Typische Schreibweise |
|---|---|---|---|
| Binär | 2 | 0, 1 |
0b10101100 |
| Dezimal | 10 | 0 bis 9 |
172 |
| Hexadezimal | 16 | 0 bis 9, A bis F |
0xAC |
Die Präfixe 0b und 0x sind in vielen Programmiersprachen üblich, gehören aber nicht zum Zahlenwert. Groß- und Kleinbuchstaben sind bei Hexadezimalziffern gleichwertig: 0xAC und 0xac bezeichnen dieselbe Zahl.
Wichtigste Tabelle: vier Bit entsprechen einer Hexadezimalziffer
Eine Gruppe aus vier Bit wird auch Nibble genannt. Da (2^4 = 16), lässt sich jedes Nibble direkt einer Hexadezimalziffer zuordnen.
| Binär | Dezimal | Hex |
|---|---|---|
0000 |
0 | 0 |
0001 |
1 | 1 |
0010 |
2 | 2 |
0011 |
3 | 3 |
0100 |
4 | 4 |
0101 |
5 | 5 |
0110 |
6 | 6 |
0111 |
7 | 7 |
1000 |
8 | 8 |
1001 |
9 | 9 |
1010 |
10 | A |
1011 |
11 | B |
1100 |
12 | C |
1101 |
13 | D |
1110 |
14 | E |
1111 |
15 | F |
Diese Tabelle ist der schnellste Weg zwischen Binär und Hexadezimal.
Binär in Hexadezimal umrechnen
Teile die Bitfolge von rechts in Vierergruppen. Ergänze die linke Gruppe bei Bedarf mit führenden Nullen:
1011010110
= 0010 1101 0110
= 2 D 6
= 0x2D6
Führende Nullen verändern den Zahlenwert nicht. Bei Bitfeldern können sie trotzdem wichtig sein, weil sie die vorgesehene Breite sichtbar machen.
Für längere Werte helfen Binär-in-Hex und Hex-in-Binär.
Hexadezimal in Binär umrechnen
Ersetze jede Hexadezimalziffer durch genau vier Bit:
0x7A3
7 A 3
0111 1010 0011
Soll die Ausgabe eine feste Wortbreite haben, ergänze links Nullen, etwa auf 16 oder 32 Bit.
Binär in Dezimal umrechnen
Jede Stelle hat ein Gewicht als Zweierpotenz. Für 110101 gilt:
1 × 2⁵ + 1 × 2⁴ + 0 × 2³ + 1 × 2² + 0 × 2¹ + 1 × 2⁰
= 32 + 16 + 0 + 4 + 0 + 1
= 53
Bei einer vorzeichenlosen Zahl reicht diese Summe. Bei einer Zahl im Zweierkomplement muss zusätzlich die feste Bitbreite bekannt sein; 11111111 bedeutet als vorzeichenloses Byte 255, als vorzeichenbehaftetes 8-Bit-Zweierkomplement dagegen −1.
Dezimal in Binär umrechnen
Teile eine positive Ganzzahl wiederholt durch 2 und notiere die Reste. Von unten nach oben gelesen ergeben sie die Binärzahl:
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
53 = 110101₂
Der Dezimal-in-Binär-Konverter eignet sich zum Prüfen des Ergebnisses.
Dezimal und Hexadezimal
Für Dezimal nach Hex funktioniert dasselbe Verfahren mit Division durch 16. Die Reste 10 bis 15 werden als A bis F geschrieben. In der Gegenrichtung werden die Stellen mit Potenzen von 16 gewichtet:
0x2D6
= 2 × 16² + 13 × 16¹ + 6 × 16⁰
= 512 + 208 + 6
= 726
Werte, die sich zu merken lohnen
| Dezimal | Binär | Hex |
|---|---|---|
| 15 | 1111 |
0x0F |
| 16 | 10000 |
0x10 |
| 31 | 11111 |
0x1F |
| 32 | 100000 |
0x20 |
| 127 | 1111111 |
0x7F |
| 128 | 10000000 |
0x80 |
| 255 | 11111111 |
0xFF |
| 256 | 100000000 |
0x100 |
| 1024 | 10000000000 |
0x400 |
Praktische Debugging-Regeln
- Gruppiere Binärzahlen von rechts in Viererblöcke für Hex und in Achterblöcke für Bytes.
- Notiere die Bitbreite, sobald Vorzeichen, Überlauf oder Bitmasken eine Rolle spielen.
- Verwechsle Zahlenpräfixe nicht mit Nutzdaten; ein Protokollfeld kann
0xausdrücklich verbieten. - Prüfe Endianness getrennt. Sie ändert die Reihenfolge mehrerer Bytes, nicht die Bitreihenfolge innerhalb der geschriebenen Hexadezimalziffer.
- Verwende bei sehr großen Ganzzahlen Werkzeuge oder Datentypen ohne Rundungsfehler.
Der Zahlensystem-Konverter unterstützt neben Basis 2, 10 und 16 weitere Basen und eignet sich als schnelle Gegenprobe.
Ein weiteres Praxisbeispiel sind CSS-Farben: #FF8000 besteht aus den Bytewerten FF, 80 und 00 für Rot, Grün und Blau. Dezimal sind das 255, 128 und 0. Hexadezimal macht die drei Bytekanäle sofort sichtbar; eine lange Binärdarstellung wäre für denselben Zweck deutlich schwerer zu überblicken.