BrowserTools
Werbung
Startseite / Konverter / Zahlenbasis-Umrechner (binär, oktal, dezimal, hex)

Zahlenbasis-Umrechner (binär, oktal, dezimal, hex)

Wandle Zahlen zwischen binär, oktal, dezimal, hexadezimal und jeder benutzerdefinierten Basis von 2 bis 36 um.

Zahlenbasis-Umrechner (binär, oktal, dezimal, hex) wird geladen… Wenn nichts passiert, aktiviere JavaScript.

Positionale Zahlensysteme stellen Zahlen mithilfe eines festen Satzes von Ziffernsymbolen dar, wobei der Wert jeder Ziffer von ihrer Position abhängt. Der Mensch hat ganz natürlich die Arithmetik zur Basis 10 (dezimal) entwickelt, mit ziemlicher Sicherheit, weil wir zehn Finger haben. Digitale Computer hingegen bestehen aus Transistoren, die nur in zwei Zuständen existieren können, an oder aus, was die Basis 2 (binär) zur natürlichen Sprache der Computerhardware macht. Jede Zahl, jeder Befehl und jeder Textbaustein, der irgendwo auf einem Computer gespeichert ist, wird letztlich als Folge von Einsen und Nullen kodiert. Die anderen Basen, oktal (Basis 8) und hexadezimal (Basis 16), entstanden als praktische Kurzschreibweise für binär: Eine Oktalziffer steht für genau drei Binärziffern, und eine Hex-Ziffer für genau vier, was sie für den Menschen beim Lesen von Binärdaten weit kompakter macht.

Beispiele

Eingabe 255 (decimal)
Ausgabe FF (hex) · 11111111 (binary) · 377 (octal)
Eingabe 0xFF (hex)
Ausgabe 255 (decimal)
Eingabe 1010 (binary)
Ausgabe 10 (decimal)

Häufig gestellte Fragen

Werden bei der Nutzung dieses Werkzeugs Daten an einen Server gesendet?
Nein. Alle Basisumrechnungen laufen vollständig in deinem Browser über die BigInt-Arithmetik von JavaScript ab. Keine Zahl und kein Wert, den du eingibst, wird jemals an irgendeinen Server übertragen, sodass die Nutzung mit Adressen, Tokens oder beliebigen sensiblen numerischen Daten sicher ist.
Warum verwenden Computer binär statt dezimal?
Digitale Computer bestehen aus Transistoren, also elektronischen Schaltern, die entweder an sind (was eine 1 darstellt) oder aus (was eine 0 darstellt). Nur zwei Zustände zu verwenden macht die Hardware äußerst zuverlässig und störungsresistent: Es ist viel leichter, zwischen einer hohen und einer niedrigen Spannung zu unterscheiden als zwischen zehn verschiedenen Spannungspegeln. Binär ist das einfachste mögliche positionale Zahlensystem, und es bildet die physikalische Realität der Funktionsweise digitaler Schaltkreise perfekt ab.
Warum wird hexadezimal für Farbcodes und Speicheradressen verwendet?
Jedes Datenbyte enthält 8 Bit und kann 256 Werte (0–255) darstellen. Zwei Hexadezimalziffern können genau dieselben 256 Werte (00–FF) darstellen, was hex zu einer kompakten und verlustfreien Art macht, Bytes auszudrücken. Eine 24-Bit-RGB-Farbe besteht aus drei Bytes und passt damit sauber in sechs Hex-Ziffern. Eine 64-Bit-Speicheradresse besteht aus acht Bytes, also sechzehn Hex-Ziffern. Binärdarstellungen derselben Werte wären viermal so lang und für den Menschen weit schwerer zu lesen.
Was haben Oktalzahlen mit Unix-Dateiberechtigungen zu tun?
Unix-Dateiberechtigungen bestehen aus drei Gruppen von je drei Bit, Eigentümer, Gruppe und Andere, wobei jedes Bit den Lese-, Schreib- oder Ausführungszugriff steuert. Drei Bit können Werte von 0 bis 7 darstellen, was perfekt zu einer einzelnen Oktalziffer passt. So bedeutet chmod 755, dass der Eigentümer 7 hat (rwx = 111 binär), die Gruppe 5 (r-x = 101) und die Anderen 5. Oktal wurde gewählt, weil es natürlich zu den 3-Bit-Gruppierungen der Unix-Berechtigungen passte.
Kann ich sehr große Zahlen ohne Genauigkeitsverlust umrechnen?
Ja. Dieses Werkzeug verwendet BigInt von JavaScript, das Ganzzahlen beliebiger Größe mit exakter Genauigkeit verarbeitet. Standard-JavaScript-Zahlen (IEEE-754-Doubles) können nur Ganzzahlen bis 2^53 - 1 (9.007.199.254.740.991) exakt darstellen. BigInt hat diese Grenze nicht, sodass du kryptografische 256-Bit-Schlüssel, große Hash-Werte oder jede andere große Ganzzahl ohne jede Rundung sicher umrechnen kannst.
Wie sieht die Geschichte der hexadezimalen Notation in der Informatik aus?
Die hexadezimale Notation in der Informatik wurde von IBM in den 1960er-Jahren mit der Einführung der Architektur IBM System/360 populär gemacht, die 8-Bit-Bytes verwendete. Vor dem System/360 nutzten einige Maschinen 6-Bit-Zeichen, und oktal war tatsächlich gebräuchlicher. Sobald 8-Bit-Bytes zum universellen Standard wurden, perfekt in zwei 4-Bit-Nibbles teilbar, wurde hexadezimal zur natürlichen Kurzschreibweise. Das Präfix 0x für Hex-Literale wurde Anfang der 1970er-Jahre von der Programmiersprache C eingeführt und seither von nahezu jeder Sprache übernommen.
Gibt es Sonderfälle bei führenden Nullen oder sehr kleinen Zahlen?
In positionalen Zahlensystemen ändern führende Nullen den Wert einer Zahl nicht: 007 dezimal ist immer noch 7. In manchen Programmierkontexten hat eine führende Null jedoch eine besondere Bedeutung: In C, Python 2 und JavaScript wird ein numerisches Literal, das mit 0 gefolgt von den Ziffern 0–7 beginnt, als Oktalzahl interpretiert, nicht als Dezimalzahl. Zum Beispiel bedeutet 010 in C 8, nicht 10. Das ist eine häufige Fehlerquelle, und deshalb verlangt modernes Python das ausdrückliche Präfix 0o für Oktalliterale.
Unterstützt dieses Werkzeug das Zweierkomplement für negative Zahlen?
Das Werkzeug zeigt negative Zahlen mit einem vorangestellten Minuszeichen an, berechnet aber keine Zweierkomplement-Darstellungen. Das Zweierkomplement hängt von der Wortbreite ab: Derselbe Wert -1 wird als 0xFF in 8 Bit, 0xFFFF in 16 Bit und 0xFFFFFFFF in 32 Bit dargestellt. Da die beabsichtigte Wortbreite vom Kontext abhängt, müsstest du die passende Bitmaske selbst anwenden, nachdem du mit diesem Werkzeug die positive Darstellung erhalten hast.
Welche Basisumrechnungen lohnt es sich auswendig zu kennen?
Eine Handvoll ist unbezahlbar: 0xFF = 255 (maximaler Wert eines einzelnen Bytes), 0x80 = 128 (Mittelpunkt eines Bytes), 0x10 = 16 dezimal, 0x100 = 256. Binär ist 1111 = 15 = 0xF, und zu wissen, dass jede Hex-Ziffer genau vier Binärziffern (Nibble) entspricht, ist die mit Abstand nützlichste Abkürzung zum Lesen von Hex-Dumps und Speicheradressen.
Was ist ein häufiges Missverständnis von Anfängern über Binärzahlen?
Ein sehr verbreitetes Missverständnis ist, dass Binärzahlen irgendwie 'weniger genaue' oder 'ungefähre' Versionen von Dezimalzahlen seien. Tatsächlich ist die Umrechnung zwischen Basen bei Ganzzahlen immer exakt: 10 dezimal ist immer genau 1010 binär, ganz ohne Rundung. Das Genauigkeitsproblem tritt nur bei Bruchzahlen auf (0.1 dezimal lässt sich binär nicht exakt darstellen), was der Ursprung der berühmten Gleitkomma-Rundungsfehler in JavaScript wie 0.1 + 0.2 === 0.30000000000000004 ist.

Über Zahlenbasis-Umrechner (binär, oktal, dezimal, hex)

Entwickler stoßen ständig auf mehrere Basen. Hexadezimal ist allgegenwärtig: CSS-Farben (#ff6600), Speicheradressen in Debuggern (0x7ffee4b3c8d0), magische Zahlen von Dateiformaten (0xFF 0xD8 für JPEG), Unix-Dateiberechtigungen in numerischer Form (0755) und MAC-Adressen im Netzwerk verwenden allesamt die Hex-Notation. Binär ist unverzichtbar, um bitweise Operationen, Flag-Felder, Netzwerk-Subnetzmasken und die Datenkodierung zu verstehen. Oktal taucht in den Modus-Zeichenketten der Unix-Dateiberechtigungen auf, dem vertrauten chmod 755 oder chmod 644, und in einigen veralteten Kommunikationsprotokollen. Basis 36 (die die Ziffern 0–9 und die Buchstaben A–Z verwendet) kommt bei URL-Verkürzern und bei Schemata für eindeutige Bezeichner zum Einsatz, die kompakte, von Groß- und Kleinschreibung unabhängige Zeichenketten brauchen.

Dieser Umrechner nimmt einen Wert in jeder Basis von 2 bis 36 entgegen und zeigt ihn gleichzeitig binär, oktal, dezimal, hexadezimal und in jeder von dir angegebenen benutzerdefinierten Basis an. Die Berechnung nutzt den Typ BigInt von JavaScript, der Ganzzahlen mit beliebiger Genauigkeit unterstützt, sodass es keine Obergrenze für die Größe der Zahl gibt, die du umrechnen kannst, anders als beim Standardtyp Number, der jenseits von 2^53 an Genauigkeit verliert. Die gesamte Verarbeitung läuft in deinem Browser ab, ohne jede Kommunikation mit einem Server.

Ein paar Feinheiten, die du im Hinterkopf behalten solltest: Hexadezimalziffern verwenden die Buchstaben A–F (oder a–f) für die Werte 10–15, und die Groß- oder Kleinschreibung hat keine semantische Bedeutung, doch die Konventionen unterscheiden sich: CPU-Register werden traditionell in Großbuchstaben angezeigt, während CSS-Farben üblicherweise klein geschrieben werden. Achte beim Eingeben von Binärwerten auf führende Nullen: Sie sind gültig und werden in der Anzeige beibehalten, beeinflussen aber den Zahlenwert nicht. Die Zweierkomplement-Notation, mit der negative Ganzzahlen in der Hardware dargestellt werden, erzeugt dieses Werkzeug nicht, weil ihre Ausgabe von der Wortbreite (8 Bit, 16 Bit, 32 Bit, 64 Bit) des Zielsystems abhängt.

Von Fingern zu Transistoren: Warum die Welt in Basis 16 zählt

Der Mensch hat die Basis 10 mit ziemlicher Sicherheit über Tausende von Jahren ganz einfach deshalb verwendet, weil wir mit zehn Fingern geboren wurden. Archäologische Funde deuten auf Strichlistensysteme hin, die mindestens 40.000 Jahre zurückreichen, und die Babylonier entwickelten um 2000 v. Chr. ein hochentwickeltes System zur Basis 60 (sexagesimal), eine Wahl, die noch heute in unseren 60-Sekunden-Minuten und 360-Grad-Kreisen nachklingt. Das Dezimalsystem, das wir heute verwenden, wurde in Indien um das 5.–6. Jahrhundert n. Chr. mit der Erfindung der Positionsschreibweise und dem Konzept der Null formalisiert und dann über arabische Mathematiker nach Europa übertragen, was uns die indo-arabischen Ziffern bescherte, die wir heute verwenden.

Die Einführung des Binärsystems in der Informatik war nicht zwangsläufig. Charles Babbages mechanische Analytical Engine aus dem 19. Jahrhundert arbeitete dezimal. Frühe Computerentwürfe des 20. Jahrhunderts erkundeten die Basis 3 (ternär) und sogar elektronische Systeme zur Basis 10. Sowjetische Ingenieure an der Staatlichen Universität Moskau bauten 1958 sogar einen funktionierenden Ternärrechner, den Setun, mit dem Argument, er sei effizienter als binär. Doch das Binärsystem setzte sich letztlich durch, weil es den geringsten technischen Aufwand erforderte: Ein Transistor ist entweder an oder aus, Punkt. Jeder weitere Zustand bedeutet sorgfältigere Spannungskalibrierung, mehr Wärme und mehr Fehler.

Hexadezimal wurde dank IBMs System/360 von 1964, das das 8-Bit-Byte als grundlegende Informationseinheit standardisierte, zur vorherrschenden, für den Menschen lesbaren Darstellung von Binärdaten. Sobald Bytes universell waren, war es für Ingenieure, die Speicher-Dumps und Registerwerte lasen, unwiderstehlich, dass zwei Hex-Ziffern genau einem Byte entsprechen. Das Präfix 0x zur Kennzeichnung von Hex-Literalen wurde um 1972 von der Sprache C eingeführt und verbreitete sich in praktisch jeder nachfolgenden gängigen Sprache: C++, Java, Python, JavaScript, Go, Rust, Swift und mehr. Heute ist hex so tief in der Computerkultur verankert, dass Farbdesigner, Netzwerkingenieure und Sicherheitsforscher wie selbstverständlich in Basis 16 denken und kommunizieren.

Werbung
Werbung
Werbung