Skip to main content

Number Base Converter

Convert numbers between binary, octal, decimal and hexadecimal.

Geprüft von · Zuletzt geprüft

Binary (2)
Octal (8)
Decimal (10)
Hexadecimal (16)

Den Zahlenbasis-Konverter verwenden

  1. Klicke auf eine Eingabebasis - Binär (2), Oktal (8), Dezimal (10) oder Hexadezimal (16) - um dem Werkzeug mitzuteilen, welches Zahlensystem du eingibst.
  2. Tippe deine Zahl. Das Eingabefeld filtert Tastendrücke, sodass nur für die ausgewählte Basis gültige Ziffern akzeptiert werden; beim Einfügen einer Zeichenkette mit ungültigen Zeichen wird eine Validierungsmeldung angezeigt.
  3. Lese alle vier Darstellungen auf einmal. Das Ausgabe-Panel zeigt Binär, Oktal, Dezimal und Hexadezimal nebeneinander und aktualisiert bei jedem Tastendruck.
  4. Kopiere jede einzelne Darstellung mit der Kopier-Schaltfläche neben jeder Zeile, oder kopiere alle mit der Kopier-Alle-Aktion.
  5. Wechsle mitten in der Sitzung die Basis, ohne deine Arbeit zu verlieren; die Auswahl einer neuen Eingabebasis interpretiert den getippten Wert neu, wenn er gültig ist, oder fordert dich auf, ihn zu löschen, wenn nicht.

Wie die Konvertierung tatsächlich funktioniert

Die Konvertierung zwischen Basen erfolgt über einen ganzzahligen Zwischenwert. Javascripts parseInt(string, radix) parst die Eingabe in eine native number; (number).toString(radix) gibt sie in jede Zielbasis aus. Der radix-Parameter ist der Schlüssel: er teilt dem Parser und Formatierer mit, wie viele verschiedene Ziffern verwendet werden sollen (hier 2, 8, 10 oder 16). Hexadezimal verwendet Groß-/Kleinschreibung-unabhängiges A-F für 10-15; Binär verwendet nur 0 und 1; Oktal verwendet 0-7. Die Konvertierung ist für jede ganze Zahl bis Number.MAX_SAFE_INTEGER, also 253-1 oder 9.007.199.254.740.991 in Dezimal, mathematisch exakt.

Alle vier Ausgabezeilen werden auf einmal berechnet statt aus der aktuellen Ausgabe weitergeleitet, sodass wenn du die Eingabebasis änderst, die bereits geparste ganze Zahl alle vier Zeichenketten aus derselben Quelle regeneriert. Das vermeidet den subtilen Fehler, bei dem wiederholte Konvertierungen Rundungsfehler akkumulieren, was an Grenzen nahe dem sicheren Ganzzahllimit wichtig ist. Alles läuft clientseitig; es ist kein Server beteiligt, kein Analytics-Ereignis trägt die Zahl, und der Status wird beim Tab-Schließen verworfen.

Wo Basiskonvertierung vorkommt

  • Hexadezimale Farbcodes lesen oder schreiben (#FF8800 ist R=255, G=136, B=0), wenn du den gewünschten Dezimal-RGB-Wert kennst.
  • Datei-Berechtigungs-Bits entschlüsseln (chmod 755 = 111 101 101 in Binär, drei Bits pro Oktal-Ziffer).
  • Eine Protokoll-Aufzeichnung debuggen, bei der Paketfelder in Hex angezeigt werden und du den Dezimalwert möchtest.
  • Ein Eingebettetes-System-Datenblatt verstehen, das Register-Standardwerte in Binär und tatsächliche Werte in Hex ausdrückt.
  • Zwischen IPv4-Zahlenbereichen (dezimaler gepunkteter Vierfacher) und ihren Hex-Darstellungen für CIDR-Mathematik übersetzen.
  • Die Positionsschreibweise lernen oder lehren, die jedem Zahlensystem zugrunde liegt, das Menschen verwenden.

Validierung und Grenzfälle

  • Ungültige Ziffern für die aktuelle Basis werden bei der Eingabe blockiert. Das Eingeben von "9" bei ausgewähltem Oktal tut nichts; das Eingeben von "G" bei ausgewähltem Hexadezimal zeigt einen Fehler.
  • Führende Nullen werden in der Binäranzeige zur Lesbarkeit beibehalten, haben aber keine mathematische Bedeutung; 0b00001010 und 0b1010 sind beide 10.
  • Groß-/Kleinschreibungsunabhängige Hex-Eingabe. "FF", "ff" und "Ff" werden alle zu 255 geparst. Die Ausgabe ist immer in Großbuchstaben, da das die gebräuchlichere Konvention in der Programmierung ist.
  • Maximale sichere ganze Zahl ist 253-1 (9.007.199.254.740.991), weil die number-Type von JavaScript ein Double ist. Größere Werte verlieren Präzision still; das Werkzeug markiert Eingaben jenseits dieser Grenze.
  • Negative Zahlen werden mit einem führenden Minuszeichen in jeder Basis angezeigt; Zweierkomplementkodierung wird nicht angewendet, da sie von der Bitbreite abhängt, die du anvisierst.
  • Bruchteile werden in diesem Build nicht unterstützt. Die Konvertierung von 0,1 zwischen Basen ist ein berühmt überraschendes Ergebnis (0,1 dezimal ist ein unendlicher Wiederholungs-Binärbruch 0,0001100110011...), das das Werkzeug durch Akzeptieren nur ganzer Zahlen umgeht.

Eine Einführung in die Positionsschreibweise

Positionsschreibweise stellt eine Zahl als Summe von Ziffern-mal-Potenz-der-Basis-Termen dar. Die Dezimalzahl 437 ist 4 * 102 + 3 * 101 + 7 * 100. Die Binärzahl 1011 ist 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20 = 11. Die Idee ist sumerisch (Basis 60, um 3000 v. Chr.) und indisch (Basis 10 mit Null, kodifiziert von Brahmagupta 628 n. Chr.); Binär wurde von Gottfried Wilhelm Leibniz 1703 in seiner Explication de l'Arithmétique Binaire untersucht, die er als mystisch bedeutsam ansah. Hexadezimal wurde mit dem IBM System/360 im Jahr 1964 zu einem Programmierstandard, weil 4 Bits eine Hex-Ziffer abdecken und 8 Bits (ein Byte) genau zwei abdecken. ISO 80000-2 definiert die Standardnotation: Tiefstellungen für Basen (2510, 110012) und Präfixe (0b, 0o, 0x) für die Programmierkonventionen.

Wann man stattdessen eine Sprache oder ein CLI-Werkzeug verwenden sollte

Für einmalige Konvertierungen im Terminal erledigen printf "%x\n" 255 (bash), (255).toString(16) (Node), hex(255) (Python) oder bc -q <<< "obase=16; 255" den Job mit null UI-Overhead. IDE-Plugins für Hex-Dezimal-Konvertierung sind verbreitet; der macOS-Rechner hat einen Programmierer-Modus, der Windows-Rechner hat einen Programmierer-Modus mit bitweisen Operationen neben der Basiskonvertierung. Für beliebig genaue Basiskonvertierung (Hunderte von Stellen) unterstützen Python und GMP es nativ, während JavaScript's number bei 253-1 begrenzt ist; BigInt plus .toString(radix) ist der richtige Weg in JS. Das Browser-Werkzeug gewinnt, wenn du alle vier Basen auf einmal sehen möchtest - zum Beispiel erkennen, dass ein Wert eine runde Zahl in Hex ist, aber nicht in Dezimal - und du keinen REPL öffnen möchtest.

Häufig gestellte Fragen

Warum sind Binär, Oktal, Dezimal und Hexadezimal die vier Standardbasen?

Diese vier decken im Wesentlichen jeden praktischen Bedarf in der Informatik und dem Alltag ab. Binär ist die native Darstellung in digitalen Schaltkreisen. Oktal ordnet sich 3-Bit-Gruppen zu und überlebt bei Unix-Dateiberechtigungen. Dezimal ist der menschliche Standard. Hexadezimal ordnet sich 4-Bit-Gruppen zu, sodass zwei Hex-Ziffern ein Byte ergeben, weshalb es zum Standardanzeigeformat für Bytes, Farben und Speicheradressen wurde.

Wie vermeidet das Werkzeug Präzisionsverlust?

Alle Zwischenarithmetik verwendet den <code>number</code>-Typ von JavaScript, der ein IEEE 754-Double mit 53 Bit ganzzahliger Präzision ist. Für jede ganze Zahl bis <code>Number.MAX_SAFE_INTEGER</code> (2<sup>53</sup>-1) sind <code>parseInt</code> und <code>toString</code> in jeder Basis exakt. Das Werkzeug erkennt Eingaben, die diese Grenze überschreiten, und markiert sie, anstatt sie still zu runden. Für beliebig genaue Konvertierung benötigst du BigInt oder eine dedizierte Bibliothek.

Wird meine Eingabe an einen Server gesendet?

Nein. Der Zahlenbasis-Konverter ist eine Preact-Island, die ihr Parsen und Formatieren vollständig im Browser durchführt. Es gibt keinen Fetch-Aufruf pro Tastendruck, kein Analytics-Ereignis, das deine Zahl trägt, und keinen persistenten Speicher. Die Kopier- Schaltflächen verwenden die lokale Clipboard-API, die das Netzwerk nicht berührt.

Warum ist Hex eine so kompakte Darstellung von Binär?

Weil 2<sup>4</sup> = 16 ist. Jede hexadezimale Ziffer repräsentiert genau vier binäre Bits, sodass eine 32-Bit-Ganzzahl 32 Binärziffern, aber nur 8 Hex-Ziffern benötigt. Diese Eins-zu-Eins-Entsprechung zwischen Hex-Ziffern und Nibbles macht Hex zum Standard-Anzeigeformat für Speicherinhalte, Byte-Dumps und Low-Level-Protokollarbeit. Oktal hat dieselbe Eigenschaft mit drei Bits pro Ziffer, passt aber weniger sauber in moderne 8-, 16-, 32- und 64-Bit-Wortgrößen.

Muss ich Hex mit 0x voranstellen?

Nicht in diesem Werkzeug - der Eingabebasis-Selektor teilt dem Parser den Radix direkt mit, sodass es genügt, "FF" mit ausgewähltem Hex einzugeben. Präfixe wie 0x (hex), 0b (binär) und 0o (oktal) sind Programmierkästen aus C, ECMAScript und Python, die dem Parser ermöglichen, die Basis aus der Zeichenkette abzuleiten. <code>parseInt</code> in JavaScript verarbeitet 0x-Präfixe automatisch, wenn er mit Radix 16 oder 0 aufgerufen wird.

Wie werden negative Zahlen behandelt?

Das Werkzeug zeigt ein führendes Minuszeichen in jeder Basis (zum Beispiel wird Dezimal -10 zu Binär -1010). Es wendet keine Zweierkomplementkodierung an, weil das eine feste Bitbreite (8, 16, 32 oder 64 Bit) erfordert, die nicht Teil der Benutzeroberfläche ist. Wenn du die Zweierkomplement-Darstellung benötigst, wähle eine Breite, addiere 2<sup>n</sup> zum negativen Wert, um seine vorzeichenlose Darstellung zu erhalten, und konvertiere das.

Kann ich Bruchzahlen wie 0,1 in Binär konvertieren?

Nicht in diesem Build. Die Nur-Ganzzahl-Konvertierung umgeht eine klassische Überraschung: 0,1 in Dezimal ist ein unendlicher Wiederholungsbruch in Binär (0,0001100110011001100...), was genau der Grund ist, warum IEEE 754 Gleitkomma 0,1 nicht exakt darstellen kann. Wenn du eine Bruchkonvertierung für eine bestimmte Anzahl von Stellen benötigst, berechne sie von Hand: multipliziere wiederholt mit der Zielbasis, nimm den ganzzahligen Teil als nächste Ziffer, und stoppe, wenn der Bruchteil null erreicht oder die gewünschte Genauigkeit.

Warum unterstützt das Werkzeug Basis 8, wenn fast niemand sie verwendet?

Oktal bleibt in zwei Nischen: Unix-Dateiberechtigungen (chmod 755, chmod 644), wo jede Oktalziffer drei Berechtigungs-Bits kodiert, und Legacy-Systeme (PDP-11, frühe IBM-Mainframes). Es einzubeziehen kostet nichts, weil derselbe <code>parseInt</code>/<code>toString</code>-Pfad Radix 8 genauso einfach wie jede andere Basis behandelt. Wenn du nie Unix-Dateiberechtigungen berührst, kannst du es ignorieren; wenn du es tust, ist es neben Hex eine schnelle Referenz.

Gibt es eine Längenbegrenzung bei der Eingabe?

Effektiv ja, bei <code>Number.MAX_SAFE_INTEGER</code>. In Dezimal sind das 16 Stellen; in Binär sind es 53 Stellen; in Hex sind es etwa 13 Stellen. Eingaben jenseits dieser Grenze verlieren ganzzahlige Präzision im <code>number</code>-Typ von JavaScript. Das Werkzeug zeigt eine Warnung für zu große Eingaben. Für wirklich lange Basiskonvertierungen (kryptografische Schlüssel, Hashes) verwende eine BigInt-basierte Bibliothek oder eine Sprache mit nativer Bignum-Unterstützung.

Was ist der Unterschied zwischen Basis-10 und Dezimal?

Sie sind dasselbe. "Dezimal" ist der lateinische Name für die Positionsschreibweise mit zehn Ziffern (0-9); "Basis-10" ist die mathematische Beschreibung. Das Wort bedeutet manchmal auch "mit Bruchteilen" (Dezimalstelle) in der Umgangssprache - hier bedeutet es streng das Zehnersystem.

Mehr Math & Calculators