Zum Hauptinhalt springen
CalcMax

Binär-in-Dezimal-Umrechner

Ergebnis

11

Dezimal

Stellenwerte
8 + 2 + 1

Ein Binär-in-Dezimal-Umrechner verwandelt eine im Zweiersystem geschriebene Zahl in dieselbe Zahl im Zehnersystem. Der Wert ändert sich dabei nicht, nur die Schreibweise. Das Stellenwertsystem ist bereits alles: Eine Ziffer ist ihre Nennzahl mal einer Potenz der Basis wert, und das Dualsystem nimmt als Basis einfach die Zwei. Die Regel kennt man aus dem Dezimalsystem: Die Zahl 352 ist drei Hunderter plus fünf Zehner plus zwei Einer, weil jede Stelle zehnmal so viel wert ist wie die Stelle rechts von ihr. Im Dualsystem ist jede Stelle stattdessen zweimal so viel wert wie die rechts von ihr, sie laufen also 1, 2, 4, 8, 16, 32 und so weiter, und die Ziffern sind immer nur 0 oder 1. Das Umrechnen besteht dann darin, die Stellen mit einer 1 zu addieren und die mit einer 0 zu übergehen: 1011 ist 8 plus 2 plus 1, also 11. Genau diese Summe druckt die Seite unter die Dezimalzahl, einen Summanden je gesetzter Stelle, denn das ist der Schritt, bei dem man sich beim Kopfrechnen vertut — eine Stelle überspringen, oder am falschen Ende anfangen zu zählen. Gelesen wird von rechts, nicht von links: Das rechteste Bit ist immer 1 wert, egal wie lang die Zahl ist.

Der Stellenwert jedes Bits in einem Byte, vom linkesten bis zum rechtesten

BitZweierpotenzWert
72⁷128
62⁶64
52⁵32
42⁴16
32³8
22²4
12¹2
02⁰1

Das ist das Lineal, mit dem die Umrechnung ausgeführt wird, und es ist fest: Es ändert sich nicht, wenn sich die Eingabe darüber ändert, es ist also kein Widerspruch, wenn die beiden einander zu widersprechen scheinen. Das Panel beantwortet die Zahl, die eingetippt wurde; die Tabelle beantwortet die allgemeinere Frage, was jede Position in einem Byte wert ist, und das ist die Frage, die zuerst kommt, wenn man noch keine Zahl in der Hand hat. Liest man die Zeilen nach unten als jeweiliges Halbieren und nach oben als Verdoppeln, erklärt sich das Muster von selbst: Das rechteste Bit ist 1 wert, weil es die Einerstelle ist, das Bit daneben ist 2 wert, weil die Basis zwei ist, und jeder Schritt nach links verdoppelt. Dass nach acht Zeilen Schluss ist, liegt daran, dass ein Byte die Breite ist, in der die Werte leben, die man tatsächlich umrechnet — ein Statusflag, ein Farbkanal, eine Berechtigungsmaske —, und eine Tabelle bis zum dreiundfünfzigsten Bit wäre eine Wand aus Zahlen, die niemand liest. Die gesetzten Bits einer Zahl werden aus dieser Tabelle abgelesen und addiert, Tabelle und die darüber ausgegebene Summe beschreiben also dieselben acht Positionen auf zwei verschiedene Weisen. Eine Warnung zur Richtung: Die Bitnummern werden hier von rechts gezählt, Bit 0 ist also die letzte Ziffer, und ein Dokument, das seine Bits von links zählt, wird dieser Tabelle in jeder Zeile widersprechen und dabei dasselbe meinen.

Formel

1011 = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 2 + 1 = 11

binary
Die zu lesende Zahl, im Zweiersystem geschrieben. Ihre Ziffern sind 0 und 1 und sonst nichts, und der Wert der ganzen Zahl hängt davon ab, wo jede Ziffer steht, nicht davon, wie viele Ziffern es sind
2ⁿ
Der Stellenwert einer Position: zwei hoch dem Abstand dieser Position vom rechten Ende, wobei die rechteste als Position null zählt. Die Folge ist 1, 2, 4, 8, 16, 32, 64, 128, und jeder Schritt ist das Doppelte des vorigen
digit × 2ⁿ
Ein einzelner Summand. Da die Ziffer entweder 0 oder 1 ist, ändert die Multiplikation nie etwas — eine 1 trägt ihren Stellenwert voll bei und eine 0 trägt gar nichts bei, weshalb die Umrechnung darauf hinausläuft, die Stellen mit einer 1 herauszusuchen
Σ
Die Addition aller Summanden. Sie ist die ganze Umrechnung: Addiert man die Stellenwerte der gesetzten Bits, ist die Summe die Zahl im Dezimalsystem
8 + 2 + 1
Dieselbe Summe mit weggelassenen Nullsummanden, so wie man sie von Hand schreibt. 1011 hat Einsen an den Stellen 8, 2 und 1 und eine Null an der Stelle 4, die 4 taucht also nie auf — gerade dieses Fehlen ist der Punkt, denn diesen Schritt verliert man beim Kopfrechnen aus den Augen
53 bits
Wie lang die Eingabe sein darf: dreiundfünfzig Binärstellen, was 9.007.199.254.740.991 entspricht. Es ist die Breite, ab der eine Maschine benachbarte ganze Zahlen nicht mehr auseinanderhalten kann; eine längere Eingabe lässt sich also nicht genau lesen und wird abgelehnt statt geraten

Das ist eine Umrechnung, die man in beide Leserichtungen braucht. Der Vorwärtsfall ist ein Wert, der binär angekommen ist und verstanden werden muss: ein Statusbyte aus einer Debugger-Ausgabe, die Flag-Spalte eines Hardwareregisters, eine Bitmaske in einer Konfigurationsdatei, die Ausgabe eines Netzwerkwerkzeugs oder eine Hausaufgabe, deren Antwort im Zehnersystem hingeschrieben werden soll. Der Rückwärtsfall ist das Zweierpotenz-Denken, das hinter ganz gewöhnlichen Zahlen steckt — ob eine Zahl eine Zweierpotenz ist, welche die nächste Zweierpotenz über einem Wert ist, wie viele Bits man braucht, um einen Wert zu speichern, oder wie groß der Bereich ist, den ein Bus gegebener Breite adressieren kann — und alle diese Fragen beantwortet man, indem man nachsieht, welche Stellen gesetzt sind. Programmierer begegnen derselben Summe beim Ausrechnen einer Subnetzmaske, beim Verpacken mehrerer kleiner Werte in einer ganzen Zahl oder beim Prüfen, welche Optionen aus einem Satz eine gespeicherte Zahl eingeschaltet hat. Die Zeile mit den Stellenwerten macht die Seite auch als Lernhilfe brauchbar: Die Übertragsregeln und die Stellengewichte sind die beiden Dinge, die willkürlich aussehen, solange die Summe nicht ausgeschrieben ist, und wenn die Seite diese Summe für die jeweils eingetippte Zahl hinschreibt, wird aus einem durchgerechneten Beispiel im Buch eine Kontrolle des eigenen Versuchs. Wer eine Binärzahl von Hand liest, und wer wissen will, warum die Antwort so lautet und nicht nur wie, bekommt dasselbe davon.

Rechenbeispiele

  1. 1011 lesen

    1. Die Stellenwerte von rechts unter die vier Ziffern schreiben: 1, 2, 4, 8
    2. Die Ziffern behalten, die 1 sind, und die streichen, die 0 sind: übrig bleiben 8, 2 und 1
    3. Die Stelle mit der 4 trägt eine 0, trägt also nichts bei und taucht in der Summe nicht auf
    4. Addieren: 8 + 2 + 1 = 11

    Der Standardfall, und der, der den fehlenden Summanden zeigt: 1011 hat eine Null an der Viererstelle, die Summe liest sich also 8 + 2 + 1 und nicht 8 + 4 + 2 + 1. Läse man die Ziffern als Dezimalziffern, käme eintausendeinhundertelf heraus — das ist die häufigste Art, wie diese Umrechnung schiefgeht.

  2. Ein ganzes Byte lesen, 10110010

    1. Acht Ziffern heißt: die Stellenwerte laufen von 128 bis hinunter zur 1
    2. Gesetzt sind die Stellen 128, 32, 16 und 2
    3. Addieren: 128 + 32 = 160, plus 16 ist 176, plus 2 ist 178
    4. Der größte Wert, den ein Byte fassen kann, ist 11111111, also 255

    Einmal durchgerechnet lohnt sich das, weil ein Byte die Breite ist, in der einem binäre Werte in der Praxis fast immer begegnen, und weil man ein Byte im Blick lesen kann, wenn man weiß, dass das linkeste Bit 128 und das rechteste 1 wert ist. Dieselben acht Ziffern von der anderen Seite gelesen wären etwas ganz anderes, die Richtung ist also kein Detail.

  3. Führende Nullen ändern den Wert nicht

    1. Die vier führenden Nullen sitzen auf den Stellen 128, 64, 32 und 16
    2. Eine Null trägt nichts bei, wo sie auch sitzt, diese Stellen fallen also aus der Summe
    3. Übrig bleibt dieselbe 8 + 2 + 1 wie vorher, also 11

    Einen Wert auf eine feste Breite aufzufüllen ist normal — ein Byte schreibt man 00001011 statt 1011, wenn die Breite eine Bedeutung trägt —, der Umrechner muss also beide Formen annehmen und für beide dasselbe liefern. Tut er, und die Summe, die er ausgibt, ist identisch, weil die führenden Nullen nie in sie eingehen.

  4. Einen negativen Wert lesen, -1011

    1. Das Minuszeichen gehört nicht zur Binärzahl, es steht davor
    2. Die Ziffern wie vorher lesen: 1011 ist 8 + 2 + 1 = 11
    3. Das Vorzeichen wieder davorsetzen: der Wert ist −11

    Das Vorzeichen bleibt außerhalb der Ziffern stehen, statt in sie hineingerechnet zu werden, denn es gibt hier keine feste Breite, in die man es hineinrechnen könnte. Ein Prozessor, der −11 in acht Bit ablegt, schreibt 11110101 — eine völlig andere Ziffernfolge, die davon abhängt, dass man weiß, dass die Breite acht beträgt. Diese Seite hat keine Breite, also bleibt das Minus ein Minus.

Einschränkungen

Diese Seite liest nur ganze Binärzahlen. Es gibt keinen Binärpunkt, 1.01 wird also nicht angenommen und lässt sich nicht umrechnen — eine Lesart mit Nachkommastellen bräuchte eine zweite Regel darüber, wo der Punkt sitzt, und diese Regel müsste je Eingabe genannt werden, statt vorausgesetzt zu werden. Die Eingabe darf höchstens dreiundfünfzig Stellen lang sein, was dezimal 9.007.199.254.740.991 entspricht; längere Werte lassen sich von einer Maschine nicht mehr genau halten und werden abgelehnt statt gerundet. Führende Nullen werden angenommen und übergangen, 00001011 und 1011 sind also dieselbe Zahl, und die für sie ausgegebene Summe ist identisch. Ein vorangestelltes Minuszeichen wird angenommen und in beide Ausgaben übernommen. Die Seite rechnet von binär nach dezimal; die Gegenrichtung ist eine eigene Seite, die unten verlinkt ist, und Hexadezimalwerte stehen auf einer weiteren. Sie rechnet nicht und kennt keine Bitoperationen — es gibt hier weder AND noch OR noch XOR oder ein Schieben.

Häufige Fragen

Wie rechne ich eine Binärzahl von Hand in eine Dezimalzahl um?
Die Stellenwerte unter die Ziffern schreiben, rechts mit der 1 beginnend und nach links jeweils verdoppelt — 1, 2, 4, 8, 16 und so weiter. Dann die Werte behalten, unter denen eine 1 steht, die unter einer 0 wegwerfen und den Rest addieren. Für 1011 ergibt das 8, 2 und 1, also 11. Die beiden Arten, wie das schiefgeht, sind das Lesen der Ziffern von links statt von rechts und das Mitaddieren eines Stellenwerts, unter dem eine Null steht — beides zeigt einem die auf dieser Seite ausgegebene Summe, weil sie nur die Summanden aufführt, die zählen.
Warum fehlen in der Antwort die Stellenwerte, unter denen eine Null steht?
Weil sie nichts beitragen und das Wesentliche zuschütten würden. Null mal irgendein Stellenwert ist null, ein Summand wie 0×4 lässt sich also streichen, ohne dass sich die Summe ändert. Sie wird als 8 + 2 + 1 ausgegeben und nicht als 8 + 0 + 2 + 1, gerade damit die fehlende Vier sichtbar ist: Zu sehen, welche Stellen fehlen, ist die Art, wie man prüft, ob man die Ziffern überhaupt richtig untereinander geschrieben hat.
Ändert eine führende Null die Zahl?
Nein. Führende Nullen sitzen auf Stellen, die nichts beitragen, genau wie im Dezimalsystem, wo 007 immer noch sieben ist. 00001011 und 1011 sind dieselbe Zahl, und diese Seite gibt für beide dieselben zwei Ausgaben. Auf eine feste Breite aufzufüllen ist üblich, wenn die Breite eine Bedeutung trägt — ein Byte schreibt man meist mit allen acht Ziffern —, die aufgefüllte Form anzunehmen ist also notwendig und keine Bequemlichkeit.
Welche ist die größte Binärzahl, die ich hier umrechnen kann?
Dreiundfünfzig Stellen, was dezimal 9.007.199.254.740.991 entspricht. Die Grenze ist keine Wahl dieser Seite: Es ist die Breite, ab der eine Maschinenzahl benachbarte ganze Zahlen nicht mehr auseinanderhalten kann, eine längere Eingabe ließe sich also nicht genau lesen, und die Seite müsste etwas ausgeben, das wie eine Antwort aussieht und keine ist. Eine längere Eingabe wird stattdessen mit einer Meldung abgelehnt. Das ist hier wichtiger als auf den Rechenseiten, weil Umrechnen nach Lesen klingt und Lesen nach unbegrenzt.
Ist das dasselbe wie wiederholtes Teilen durch zwei?
Es ergibt dieselbe Antwort auf einem anderen Weg. Das wiederholte Teilen durch zwei erzeugt die Ziffern von rechts her, und das ist die Methode für die andere Richtung, also von dezimal nach binär. Von binär nach dezimal ist die Stellenwertsumme kürzer, weil die Ziffern schon bekannt sind und nur noch ihre Gewichte addiert werden müssen. Beides ist richtig; ausgegeben wird hier die Summe, weil sie die ist, die man auf einen Blick nachprüfen kann.
Kann ich eine Binärzahl mit Nachkommastellen umrechnen?
Hier nicht. Diese Seite liest ganze Zahlen, ein Binärpunkt wird also abgelehnt statt geraten. Brüche sind im Dualsystem durchaus wohldefiniert — die Stellen rechts vom Punkt sind ein Halb, ein Viertel, ein Achtel und so weiter wert —, aber eine Seite, die sie annähme, müsste entscheiden, wie viele davon sie zeigt und wie sie die letzte rundet, und diese Seitengruppe arbeitet durchweg mit ganzen Zahlen. Diese Grenze auf jeder Seite der Gruppe an derselben Stelle zu halten bedeutet, dass dieselbe Eingabe nicht von der einen Seite angenommen und von der anderen abgelehnt wird.

Quellen

Verwandte Rechner