Zahlensysteme umrechnen: Binär, Oktal und Hex von Hand berechnen
Eine Zahl zwischen Zahlensystemen umzurechnen bedeutet, denselben Wert mit einer anderen Anzahl an Ziffern darzustellen, zum Beispiel die Dezimalzahl 202 als Binärzahl 11001010. Von Hand geht das über zwei Wege: für Dezimal in eine andere Basis wiederholt durch die Zielbasis teilen und die Reste notieren, für den Rückweg jede Ziffer mit ihrem Stellenwert multiplizieren und die Ergebnisse summieren.
Was eine Zahlenbasis eigentlich bedeutet
Eine Zahlenbasis, auch Radix genannt, legt fest, wie viele eindeutige Ziffern ein Stellenwertsystem verwendet. Dezimal (Basis 10) kennt die Ziffern 0 bis 9. Binär (Basis 2) kennt nur 0 und 1. Oktal (Basis 8) verwendet 0 bis 7, und Hexadezimal (Basis 16) braucht zusätzlich zu 0 bis 9 die Buchstaben A bis F für die Werte 10 bis 15.
Der Trick, der alles zusammenhält, ist die Stellenwertschreibweise: Jede Ziffernposition steht für eine Potenz der Basis. In der Dezimalzahl 202 steht die führende 2 an der Hunderterstelle, also 2 mal 10 hoch 2, die 0 an der Zehnerstelle, und die letzte 2 an der Einerstelle. Genau dasselbe Prinzip gilt in jeder anderen Basis, nur dass die Basis selbst wechselt: In Binär ist jede Stelle eine Zweierpotenz, in Oktal eine Achterpotenz, in Hexadezimal eine Sechzehnerpotenz.
Hexadezimal taucht in der Informatik ständig auf, weil eine Hex-Ziffer exakt vier Binärbits abdeckt, ein sogenanntes Nibble. Zwei Hex-Ziffern reichen also für ein volles Byte: 0xFF sind nur zwei Zeichen, aber acht Binärstellen. Das macht Hex zur kompakten, lesbaren Kurzform für Speicheradressen, Fehlercodes und Farbwerte wie #RRGGBB. Oktal hat einen ähnlichen, wenn auch selteneren Nutzen: Jede Oktalziffer deckt genau drei Binärbits ab. Historisch spielte das bei Wortbreiten eine Rolle, die durch drei teilbar waren, und bis heute begegnet man Oktal fast ausschließlich bei Unix-Dateiberechtigungen (chmod).
Dezimalzahlen von Hand in Binär, Oktal und Hexadezimal umrechnen
Nimm 202 als Beispiel. Für Binär funktioniert die Stellenwert-Methode am direktesten: Suche die größte Zweierpotenz, die noch in die Zahl passt, ziehe sie ab, und wiederhole das mit dem Rest.
| Zweierpotenz | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| Bit gesetzt? | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
128 plus 64 plus 8 plus 2 ergibt 202, und liest man die gesetzten Bits von links nach rechts, steht dort 11001010, die Binärdarstellung von 202.
Für Oktal und Hexadezimal ist die Divisionsrest-Methode praktischer: durch die Zielbasis teilen, den Rest notieren, mit dem ganzzahligen Ergebnis weiterteilen, bis nichts mehr übrig bleibt, und die Reste von unten nach oben ablesen.
| Schritt | Division | Ganzzahliges Ergebnis | Rest |
|---|---|---|---|
| 1 | 202 ÷ 8 | 25 | 2 |
| 2 | 25 ÷ 8 | 3 | 1 |
| 3 | 3 ÷ 8 | 0 | 3 |
Die Reste von unten nach oben gelesen ergeben 312, die Oktaldarstellung von 202. Dieselbe Methode mit Basis 16:
| Schritt | Division | Ganzzahliges Ergebnis | Rest |
|---|---|---|---|
| 1 | 202 ÷ 16 | 12 | 10 (A) |
| 2 | 12 ÷ 16 | 0 | 12 (C) |
Von unten nach oben gelesen: CA. Damit hat 202 in allen drei Zielsystemen dieselbe Darstellung, die auch der Zahlensystem-Konverter unten liefert: binär 11001010, oktal 312, hexadezimal CA.
Ein Beispiel mit runden Werten zeigt den Zusammenhang nochmal von einer anderen Seite: Dezimal 4096, eine Zweierpotenz (2 hoch 12), ergibt binär 1000000000000, oktal 10000 und hexadezimal 1000. Weil 4096 in jeder dieser Basen glatt aufgeht, sehen alle drei Darstellungen ungewöhnlich rund aus, ein nützlicher Reflex, wenn man später eine krumme Zahl vor sich hat und schnell abschätzen will, wie groß sie ungefähr ist.
Oktal- und Hexadezimalzahlen zurück in Dezimalzahlen lesen
Der Rückweg funktioniert über dieselbe Stellenwertlogik, nur ohne das Abziehen: Jede Ziffer mit ihrem Stellenwert (einer Potenz der Ausgangsbasis) multiplizieren und die Ergebnisse summieren. Ein Wert, dem man in der Praxis wirklich begegnet, ist der oktale Unix-Berechtigungswert 755, wie er bei chmod 755 datei.sh verwendet wird.
755 in Oktal bedeutet, von links nach rechts gelesen, 7 mal 64 (die Achterpotenz an dritter Stelle) plus 5 mal 8 plus 5 mal 1: 448 plus 40 plus 5 gleich 493. Dezimal 493 ist also der exakte Wert hinter der oktalen Schreibweise 755.
Für die Binärdarstellung lohnt sich der 3-Bit-Gruppierungstrick: Weil jede Oktalziffer genau drei Binärbits abdeckt, lässt sich 755 ziffernweise übersetzen, ohne den Umweg über Dezimal zu gehen. 7 wird zu 111, 5 wird zu 101, und noch einmal 5 wird zu 101. Aneinandergereiht ergibt das 111101101, die Binärdarstellung von 493 respektive von oktal 755.
Für Hexadezimal gilt derselbe Trick mit 4-Bit-Gruppen statt 3-Bit-Gruppen, nur dass man dafür meist über die Dezimalzahl oder direkt über Binär geht: 493 in Hexadezimal ist 1ED. Bei den klassischen chmod-Rechten heißt 7 (111 in Binär) Lesen, Schreiben und Ausführen, 5 (101) heißt Lesen und Ausführen ohne Schreiben, und die drei Ziffern von 755 stehen der Reihe nach für Eigentümer, Gruppe und alle anderen. Genau deshalb ist der 3-Bit-Trick in der Praxis so nützlich: Man kann die Rechte einer Datei direkt aus der Oktalzahl ablesen, ohne überhaupt umzurechnen.
Rechne mit deinen eigenen Zahlen
Gib unten eine beliebige Zahl in eines der vier Felder ein, binär, oktal, dezimal oder hex, und die drei anderen Darstellungen aktualisieren sich sofort.
Häufige Fehler und Sonderfälle
Zweierkomplement statt Vorzeichen-Betrag-Darstellung erwarten. Gibt man beim Konverter -18 ein, liefert das Tool binär -10010, oktal -22 und hexadezimal -12, jeweils ein Minuszeichen vor dem Betrag der Zahl. Das ist Vorzeichen-Betrag-Darstellung (sign-magnitude), nicht Zweierkomplement. Wer aus der Systemprogrammierung kommt, erwartet an dieser Stelle oft Zweierkomplement, bei dem -18 als vorzeichenbehaftete 8-Bit-Zahl 11101110 wäre, ein völlig anderes Bitmuster ohne sichtbares Minuszeichen. Der Konverter macht das nicht, er zeigt schlicht Betrag mit Vorzeichen in jeder Basis, was für schnelles Nachrechnen praktischer ist, aber eben nicht dasselbe wie die Bitdarstellung in Hardware oder in den meisten Programmiersprachen.
Groß- und Kleinschreibung bei Hex-Buchstaben verwechseln. Beim Eintippen ist es egal, ob man a bis f oder A bis F verwendet, der Konverter akzeptiert beides gleichwertig. Ausgegeben wird Hex aber immer in Großbuchstaben, CA statt ca. Das ist reine Anzeigekonvention und ändert nichts am Wert.
Führende Nullen für bedeutsam halten. 00CA und CA sind exakt derselbe Wert, in jeder der vier Basen ändern führende Nullen nichts an der Größe der Zahl. Sie können höchstens eine feste Stellenanzahl signalisieren (etwa bei Farbcodes oder Byte-Darstellungen), tragen aber selbst keinen zusätzlichen Wert.
Die Grenze für sehr große Zahlen übersehen. Der Konverter arbeitet innerhalb des sicheren Ganzzahlbereichs von JavaScript, ungefähr bis 2 hoch 53 minus 1, also rund 9 Billiarden. Für die allermeisten Anwendungsfälle, von Farbwerten über Speicheradressen bis zu Dateiberechtigungen, liegt das weit über dem, was man je braucht. Jenseits dieser Grenze verliert die Darstellung an Präzision, ein Punkt, den man im Hinterkopf behalten sollte, sobald man mit extrem großen Zahlen jongliert.
0x, 0b und 0o als Eingabeformat erwarten. In vielen Programmiersprachen schreibt man Literale mit Präfix, 0xFF für Hex, 0b1010 für Binär, 0o17 für Oktal. Der Konverter erwartet dagegen reine Ziffern im jeweiligen Feld, also FF ins Hex-Feld, 1010 ins Binärfeld, ohne Präfix. Tippt man versehentlich den Code-Präfix mit ein, wird das Feld als ungültige Eingabe zurückgewiesen statt korrekt interpretiert.
Häufig gestellte Fragen
Was ist eine Zahlenbasis (Radix) genau? Sie legt fest, wie viele unterschiedliche Ziffern ein Stellenwertsystem benutzt und wie stark jede Stelle beim Weiterrücken an Gewicht gewinnt. Dezimal hat zehn Ziffern und jede Stelle ist zehnmal so viel wert wie die rechts daneben, Binär hat zwei Ziffern und jede Stelle ist doppelt so viel wert. Das Prinzip bleibt für Oktal und Hexadezimal identisch, nur die Basis ändert sich.
Warum arbeiten Programmierer überhaupt mit Hexadezimal statt direkt mit Binär? Weil vier Binärbits exakt einer Hex-Ziffer entsprechen, lässt sich eine lange Bitfolge kompakt und trotzdem eindeutig als Hex-Zahl schreiben. Eine 32-Bit-Speicheradresse als Binärzahl hat 32 Zeichen, dieselbe Adresse in Hex kommt mit 8 Zeichen aus, und die Umrechnung zwischen beiden ist reines Nachschlagen pro Ziffer, kein echtes Rechnen.
Wie rechne ich eine Binärzahl von Hand in Dezimal um? Jede Binärstelle steht für eine Zweierpotenz, von rechts beginnend bei 2 hoch 0. Für 11001010 multipliziert man jede gesetzte Stelle mit ihrer Potenz und summiert: 128 plus 64 plus 8 plus 2 ergibt 202. Nullstellen tragen nichts bei und lässt man beim Summieren einfach weg.
Wie groß darf die größte Zahl sein, die der Konverter verarbeitet? Er nutzt den sicheren Ganzzahlbereich von JavaScript, ungefähr bis 2 hoch 53 minus 1. Innerhalb dieses Bereichs bleibt jede Umrechnung exakt, darüber hinaus geht Präzision verloren, was für praktisch jeden alltäglichen Anwendungsfall keine Rolle spielt.
Unterstützt der Konverter negative Zahlen? Ja. Ein Minuszeichen vor einem der vier Werte überträgt sich auf alle anderen Basen als Minuszeichen vor dem Betrag, nicht als Zweierkomplement. -18 wird so zu binär -10010, oktal -22 und hexadezimal -12.
Kann ich das Tool mit bereits ausgefüllten Werten teilen? Ja. Die URL aktualisiert sich automatisch, während man tippt, und lässt sich direkt aus der Adressleiste kopieren oder über den Teilen-Button versenden. Wer den Link öffnet, sieht exakt dieselben Werte in allen vier Feldern, ideal um eine Umrechnung in einem Ticket oder einer Chat-Nachricht zu belegen.