tooloora

Zahlensysteme umrechnen – binär, oktal, dezimal, hex

Alle vier Standard-Basen gleichzeitig plus jede Basis von 2 bis 36, dank BigInt exakt auch bei riesigen Zahlen, mit Bit-Ansicht, Zweierkomplement und passendem Zeichen. Läuft lokal.

Läuft lokal — nichts wird hochgeladen

Zahl eingeben

Tippe in ein beliebiges Feld, die anderen rechnen mit.

Freie Basis

Bit-Ansicht

1111 1111

8 Bit für den Betrag

Zweierkomplement

Rechner speichern negative Zahlen nicht mit einem Minuszeichen, sondern als Bitmuster fester Breite: Der Wert wird als 2^n plus die negative Zahl abgelegt. Oben rechnet dieses Tool exakt und vorzeichenbehaftet, hier siehst du zusätzlich, wie derselbe Wert in einer Ganzzahl dieser Breite läge.

255 passt nicht in 8 Bit. Der Bereich ist -128 bis 127.

Als Zeichen

ÿ
Zeichen
U+00FF
Unicode

Alles rechnet im Browser, mit BigInt und ohne Rundung.

Zahlensysteme in einem Rutsch umrechnen

Tippe eine Zahl in ein beliebiges Feld, die anderen Basen rechnen sofort mit: binär, oktal, dezimal, hexadezimal und dazu jede freie Basis von 2 bis 36. Gerechnet wird mit BigInt, große Werte bleiben also exakt. Darunter siehst du die Bit-Ansicht, das Zweierkomplement und das passende Zeichen.

Wie rechnet man von einer Basis in die andere?

Jede Stelle einer Zahl ist eine Potenz der Basis. Binär 1011 heißt 1·2³ + 0·2² + 1·2¹ + 1·2⁰ = 11. In die andere Richtung teilt man wiederholt durch die Zielbasis und liest die Reste von unten nach oben: 11 ÷ 2 = 5 Rest 1, 5 ÷ 2 = 2 Rest 1, 2 ÷ 2 = 1 Rest 0, 1 ÷ 2 = 0 Rest 1, ergibt 1011. Genau dieses Verfahren steckt hinter den Feldern, nur eben für jede Basis bis 36, wo nach den Ziffern die Buchstaben a bis z als Ziffernzeichen weiterzählen.

Warum bleiben große Zahlen hier exakt?

Weil das Tool durchgehend BigInt benutzt. Eine gewöhnliche JavaScript-Zahl ist eine 64-Bit-Gleitkommazahl nach IEEE 754 und stellt Ganzzahlen nur bis Number.MAX_SAFE_INTEGER = 9.007.199.254.740.991 exakt dar, also bis 2⁵³ − 1. Darüber wird gerundet, und zwar lautlos: 2⁸⁰ und 2⁸⁰ − 1 ergeben als Gleitkommazahl denselben Wert. Viele Online-Umrechner erben diesen Fehler und liefern bei einer 20-stelligen Hex-Zahl ein falsches Dezimalergebnis. Hier ist die Umrechnung eine reine Ziffernrechnung ohne Zwischenschritt über Fließkomma, deshalb kommt jeder Wert unverändert zurück.

Was ist das Zweierkomplement und warum eine eigene Ansicht?

Prozessoren kennen kein Minuszeichen. Sie speichern Ganzzahlen als Bitmuster fester Breite und legen einen negativen Wert x als 2ⁿ + x ab. In acht Bit wird −1 damit zu 11111111, −128 zu 10000000. Das oberste Bit trägt dann das Vorzeichen, und Addition funktioniert für positive wie negative Zahlen mit derselben Schaltung, was diese Darstellung seit Jahrzehnten zum Standard macht. Seit C++20 schreibt der Sprachstandard sogar vor, dass vorzeichenbehaftete Ganzzahlen im Zweierkomplement dargestellt werden, vorher waren Einerkomplement und Betrag-mit-Vorzeichen formal noch erlaubt.

Ehrlich dazu gesagt: Die oberen vier Felder rechnen mit Vorzeichen und beliebiger Größe, dort ist −10 einfach −1010. Das Zweierkomplement ist eine zusätzliche Sicht mit fester Breite, keine andere Rechnung. Passt der Wert nicht in die gewählte Breite, sagt das Tool das, statt still abzuschneiden. Der Wertebereich ist bei n Bit −2ⁿ⁻¹ bis 2ⁿ⁻¹ − 1, in acht Bit also −128 bis 127.

Warum werden Bits in Vierer- oder Achterblöcke gruppiert?

Weil man 11001010111111101011101010111110 nicht lesen kann, 1100 1010 1111 1110 1011 1010 1011 1110 aber schon. Vier Bit entsprechen genau einer Hex-Ziffer, die Blöcke lassen sich also direkt in Hex ablesen: aus 1100 wird c, aus 1010 wird a. Achterblöcke entsprechen einem Byte und sind praktisch, wenn du Speicherinhalte oder Netzmasken vor dir hast. Die Bit-Ansicht zeigt immer den Betrag; das Vorzeichen steht davor, das Zweierkomplement bekommt seinen eigenen Abschnitt.

Wofür ist die Zeichen-Anzeige gut?

Sie liest den Wert als Unicode-Codepoint, so wie es eine Zeichentabelle tut. 65 ist A, 97 ist a, 10 ist das Steuerzeichen LF, 8364 (hex 20AC) ist das Eurozeichen. Das hilft beim Debuggen von Byte-Dumps, Escape-Sequenzen und Protokolldaten. Unicode reicht von 0 bis 1.114.111 (hex 10FFFF); darüber gibt es keinen Codepoint, und der Bereich D800 bis DFFF ist für die UTF-16-Kodierung reserviert und steht für kein Zeichen. Beide Fälle werden benannt statt geraten.

Bleiben meine Werte privat?

Ja. Einlesen, Umrechnen, Formatieren, alles passiert in deinem Browser, es geht keine Anfrage nach außen und die Seite funktioniert offline. Das ist keine Formalie: Umgerechnet werden meist Speicheradressen, Rechtemasken, Seriennummern, Prüfsummen oder Schlüsselfragmente aus einem laufenden System. Solche Werte gehören nicht in das Log eines fremden Servers, und hier landen sie dort auch nicht.

Häufige Fragen

Warum bleiben große Zahlen hier exakt?

Weil die Umrechnung mit BigInt statt mit der üblichen JavaScript-Zahl arbeitet. Eine JavaScript-Zahl ist eine 64-Bit-Gleitkommazahl und stellt Ganzzahlen nur bis Number.MAX_SAFE_INTEGER exakt dar, also bis 9.007.199.254.740.991. Darüber wird stillschweigend gerundet: 2^80 und 2^80 minus eins ergeben denselben Wert. BigInt kennt diese Grenze nicht, ein 40-stelliger Hex-Wert kommt unverändert zurück.

Wie funktionieren negative Zahlen im Zweierkomplement?

Die vier Basis-Felder führen ein echtes Vorzeichen, -10 erscheint binär als -1010. Hardware macht das anders: Sie speichert ein Bitmuster fester Breite, in dem ein negativer Wert x als 2^n + x steht, -1 wird in acht Bit also zu 11111111. Der eigene Abschnitt zeigt dieses Muster für 8, 16, 32 und 64 Bit und sagt es ausdrücklich, wenn der Wert nicht in die gewählte Breite passt.

Welche Ziffern sind in welcher Basis erlaubt?

Eine Basis nutzt genau so viele Ziffernzeichen, wie ihr Wert angibt: Basis 2 nur 0 und 1, Basis 8 die 0 bis 7, Basis 10 die 0 bis 9, Basis 16 zusätzlich a bis f, Basis 36 endet bei z. Tippst du ein Zeichen, das die Basis nicht kennt, wird das Feld markiert und die störenden Zeichen werden benannt statt still verschluckt. Groß- und Kleinschreibung sind gleichwertig.

Was zeigt die Zeichen-Anzeige?

Sie liest den Wert als Unicode-Codepoint, genau wie eine Zeichentabelle. 65 ist A, 10 ist das Steuerzeichen LF, 8364 ist das Eurozeichen. Unicode definiert Codepoints von 0 bis 1.114.111; darüber und im für UTF-16 reservierten Surrogat-Bereich steht kein Zeichen, das wird auch so gemeldet.

Geht irgendetwas an einen Server?

Nein. Einlesen, Umrechnen und Formatieren passieren im Browser, das Tool funktioniert auch offline. Das ist wichtiger, als es klingt: Was Entwicklerinnen und Entwickler umrechnen, sind oft Adressen, Schlüssel, Rechtemasken oder Hardware-Kennungen aus einem laufenden System, und die haben auf einem fremden Server nichts verloren.