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.