Denselben Wert in Binär, Oktal, Dezimal und Hexadezimal Umschreiben
Eine Zahlenbasis (oder „Radix“) gibt an, wie viele verschiedene Ziffern ein Zahlensystem verwendet, bevor es zur nächsten Stelle übergeht — Dezimal verwendet 10 (0–9), Binär verwendet 2 (0–1), Oktal verwendet 8 (0–7), und Hexadezimal verwendet 16 (0–9 dann A–F). Geben Sie eine ganze Zahl in einer dieser vier Basen ein, und dieser Rechner zeigt denselben Wert in allen vier gleichzeitig geschrieben.
Binär ist, wie Computer jeden Wert intern darstellen (jede Ziffer ist ein „Bit“); Hexadezimal ist eine gängige Kurzschreibweise für Binär in der Programmierung (jede Hexadezimalziffer steht für genau 4 Binärziffern, ist also weit kompakter zu lesen und einzutippen); Oktal taucht in älteren Unix-Dateiberechtigungen und einigen systemnahen Kontexten auf. Dezimal ist einfach das alltägliche Zehnersystem.
Die Formel
Jedes Stellenwertsystem funktioniert auf dieselbe Weise: Jede Ziffer wird mit der Basis hoch ihrer Stellenwert-Potenz multipliziert, dann summiert:
wobei die Ziffer an Position ist (gezählt ab 0 an der Ziffer ganz rechts). Die Umrechnung in eine andere Basis teilt den Dezimalwert wiederholt durch die neue Basis und protokolliert jeden Rest — die Umkehrung der obigen Summe.
Beispielrechnung
Umrechnung der Binärzahl 11111111 in ihre anderen drei Basen:
- Von rechts nach links gelesen, trägt jede
1ihren Stellenwert bei: . - Dezimal: 255.
- Oktal: Das wiederholte Teilen von 255 durch 8 (255 ÷ 8 = 31 Rest 7, 31 ÷ 8 = 3 Rest 7, 3 ÷ 8 = 0 Rest 3) liest die Reste von unten nach oben als 377.
- Hexadezimal: 255 ÷ 16 = 15 Rest 15, 15 ÷ 16 = 0 Rest 15 — beide Reste sind 15 (F in Hex), was FF ergibt.
Wichtige Einflussfaktoren
- Ein einzelnes Byte (8 Bits) kann genau 256 verschiedene Werte darstellen — 0 bis 255 dezimal, oder 00 bis FF hexadezimal. Genau deshalb ist 255/FF ein so häufiger Referenzwert in der Informatik — es ist der Maximalwert, den ein einzelnes Byte fassen kann, was überall auftaucht, von RGB-Farbkanälen (0-255 pro Kanal) bis zu Netzwerk- und Dateiformaten.
- Oktal war historisch üblicher, als es heute ist, größtenteils wegen älterer Computer-Wortgrößen. Oktal (Basis 8) bildet sauber auf Gruppen von 3 Binärziffern ab, was zu Computern passte, die um durch 3 teilbare Wortgrößen herum gebaut waren — die moderne Datenverarbeitung ist größtenteils zu Hexadezimal übergegangen (das auf Gruppen von 4 Bits abbildet), da die meiste moderne Hardware Wortgrößen verwendet, die durch 4 und 8 teilbar sind, obwohl Oktal in bestimmten Kontexten wie der Unix-Dateiberechtigungsnotation (z. B. chmod 755) noch vorkommt.
- Ein häufiger Programmierfehler ist die Verwechslung der Basis einer Zahl allein aus dem Kontext. Die Ziffern „10” bedeuten je nach Basis sehr unterschiedliche Werte — 10 dezimal, 2 binär, 8 oktal, 16 hexadezimal — weshalb Programmiersprachen typischerweise ein explizites Präfix (wie 0x für Hex oder 0b für Binär) verlangen, um jede Mehrdeutigkeit darüber zu beseitigen, welche Basis gemeint ist.
- Jede ganze Zahl kann theoretisch in JEDER Basis dargestellt werden, nicht nur diesen vier. Binär, Oktal, Dezimal und Hexadezimal sind einfach die vier Basen mit der häufigsten realweltlichen Verwendung in der Informatik und alltäglicher Mathematik — dasselbe Stellenwertsystem-Prinzip, das dieser Rechner verwendet, erstreckt sich auf jede beliebige Basis, wie Basis 3, Basis 20 oder Basis 60 (die Grundlage, wie Zeit und Winkel traditionell unterteilt werden).
Häufige Fehler
- Eine Zahl mit gemischter Basis ohne Präfix standardmäßig als dezimal lesen. „10” bedeutet zehn im Dezimalsystem, aber nur zwei im Binärsystem — prüfen (oder angeben) Sie immer, in welcher Basis eine Zahl geschrieben ist, bevor Sie damit rechnen.
- Annehmen, dass führende Nullen den Wert ändern. Genau wie im Dezimalsystem ist
0011im Binärsystem derselbe Wert wie11— führende Nullen sind nur für eine Formatierung mit fester Breite (wie die Darstellung eines vollständigen Bytes) von Bedeutung, nicht für den tatsächlichen Wert der Zahl. - Vergessen, dass Hex-Ziffern über 9 Buchstaben statt zweistelliger Zahlen verwenden.
Hexadezimal zehn wird als
Ageschrieben, nicht als10—10im Hex-System zu schreiben bedeutet tatsächlich sechzehn im Dezimalsystem, eine häufige Quelle für erhebliche Fehler. - Versuchen, eine negative Zahl direkt umzurechnen. Wie die FAQ oben feststellt, hängen negative Binär-/Hex-Werte von einer gewählten Bitbreite und einer Zweierkomplement-Konvention ab — es gibt keine einzige eindeutige Umrechnung wie bei nicht-negativen ganzen Zahlen.
Gut zu Wissen
- Arbeiten Sie mit Netzwerkadressen statt beliebigen Zahlen? IP-Subnetz-Rechner wendet dieselbe Binär-/Dezimal-Beziehung speziell auf IPv4-Adressen an.
- Benötigen Sie sehr große oder sehr kleine Dezimalzahlen in kompakter Form? Rechner für wissenschaftliche Notation übernimmt stattdessen diese Art der Umrechnung.
- Neugierig auf ein viel älteres, positionsähnliches Zahlensystem? Römische-Zahlen-Rechner rechnet in römische Zahlen um und zurück, die einen völlig anderen (nicht-positionellen) Ansatz verwenden.