Zum Inhalt springen

Basiskonverter: Dezimal, Hex, Base32, Base64

Zahlen zwischen Dezimal und Base16 (Hex), Base32 und Base64 bidirektional umwandeln, mit automatischer Basiserkennung. Dezimal oder kodierten Wert umwandeln.

Bidirektionaler Basis-Konverter

Konvertieren Sie zwischen Dezimalzahlen und Standard-Basiscodierungen (Base16/Hex, Base32, Base64). Geben Sie einen Wert in einem der Felder ein, um zu konvertieren.

Geben Sie eine positive Ganzzahl ein (max: 9.007.199.254.740.991)

Geben Sie einen Base16-, Base32- oder Base64-codierten Wert ein

Über Basiscodierungen

Base16 (Hexadezimal): Verwendet Zeichen 0-9 und A-F. Jedes Zeichen repräsentiert 4 Bit. Häufig verwendet für Farbcodes und Speicheradressen.
Base32: Verwendet Zeichen A-Z und 2-7. Jedes Zeichen repräsentiert 5 Bit. Groß-/Kleinschreibung unabhängig und menschenlesbar.
Base64: Verwendet Zeichen A-Z, a-z, 0-9, +, und /. Jedes Zeichen repräsentiert 6 Bit. Häufig verwendet zum Codieren von Binärdaten in Text.
Sicherer Ganzzahlgrenzwert: JavaScript kann Ganzzahlen bis zu 9.007.199.254.740.991 (2^53 - 1) sicher ohne Präzisionsverlust darstellen.
Ladekalkulator...
📚

Dokumentation

Bidirektionaler Basis-Konverter

Ein Basis-Konverter ändert die Schreibweise einer Zahl, nicht die Zahl selbst. Dieses Tool wandelt eine Dezimalzahl in Basis16 (Hexadezimal), Basis32 oder Basis64 um und konvertiert einen codierten Wert zurück in eine Dezimalzahl. Außerdem erkennt es, welche der drei Codierungen ein eingefügter Wert verwendet.

Was eine Zahlenbasis ist

Eine Zahlenbasis, auch Radix genannt, ist die Anzahl verschiedener Symbole, die ein Zahlensystem für eine einzelne Ziffer verwendet. Das Dezimalsystem ist die Basis 10 und verwendet die Ziffern 0 bis 9. Computer speichern Zahlen häufig in anderen Basen, weil sich derselbe Wert damit in weniger Zeichen darstellen lässt oder weil der Zeichensatz sicher über reine Textsysteme wie E-Mail oder eine URL übertragen werden kann.

Dieses Tool arbeitet mit drei solchen Basen:

  • Basis16 (hexadezimal). Verwendet die 16 Symbole 0–9 und A–F. Jedes Zeichen speichert 4 Bit. Üblich bei Farbcodes, Speicheradressen und Hash-Werten.
  • Basis32. Verwendet die 32 Symbole A–Z und 2–7, definiert durch den Internetstandard RFC 4648. Jedes Zeichen speichert 5 Bit. Es vermeidet Buchstaben und Ziffern, die sich ähneln, etwa 0 und O, wodurch sich die Zeichen leichter vorlesen oder von Hand eingeben lassen.
  • Basis64. Verwendet 64 Symbole: A–Z, a–z, 0–9, + und /; auch diese sind durch RFC 4648 definiert. Jedes Zeichen speichert 6 Bit. Dies ist die Standardmethode, um Binärdaten in Text einzubetten, etwa einen E-Mail-Anhang oder ein JSON-Feld.

So wird eine Dezimalzahl in Basis16, Basis32 oder Basis64 konvertiert

Das Tool zerlegt die Dezimalzahl zunächst in Bytes aus Gruppen von 8 Bit, die in Big-Endian-Reihenfolge geschrieben werden (höchstwertiges Byte zuerst). Danach liest es die Bits in für die Zielbasis passenden Gruppengrößen aus: 4 Bit auf einmal für Basis16, 5 Bit auf einmal für Basis32 oder 6 Bit auf einmal für Basis64. Jede Bitgruppe wird in der Symboltabelle der jeweiligen Basis nachgeschlagen, um ein Ausgabezeichen zu erzeugen.

Da Basis32 und Basis64 Bits in Gruppen von 5 beziehungsweise 6 lesen, endet die letzte Gruppe einer Zahl häufig nicht an einer 8-Bit-Byte-Grenze. Das Tool füllt die verbleibenden Bits mit Nullen auf und fügt bei Basis32 und Basis64 am Ende =-Zeichen hinzu, sodass die Ausgabelänge immer ein Vielfaches von 8 Zeichen (Basis32) oder 4 Zeichen (Basis64) ist.

Basis16 verwendet immer eine ganze Anzahl von 2-Zeichen-Paaren, ein Paar pro Byte. Ein Wert, für den eine ungerade Anzahl von Hexadezimalziffern erforderlich wäre, erhält stattdessen eine führende Null, sodass die Zeichenkette immer eine ganze Anzahl von Bytes darstellt.

Formel und Beispiel für Basis16

Jedes Byte wird zu genau zwei Hexadezimalziffern: dem 16-Fachen der ersten Ziffer plus der zweiten:

v=a×16+bv = a \times 16 + b

Dabei ist v der Bytewert, a die erste Hexadezimalziffer und b die zweite.

Beispiel: 255 im Dezimalsystem. 255 passt in ein Byte. 255 ÷ 16 = 15 Rest 15, und 15 wird als F geschrieben, sodass 255 zu FF wird. Deshalb ist der Farbcode #FFFFFF weiß: drei Bytes, jedes mit seinem höchsten Wert.

Beispiel: 1000 im Dezimalsystem. 1000 benötigt zwei Bytes: 1000 = 3 × 256 + 232. Das erste Byte, 3, wird zu 03. Das zweite Byte, 232, ist 14 × 16 + 8 und wird zu E8. Zusammengelesen ist 1000 in Basis16 03E8, nicht 3E8 — die Hexadezimalausgabe wird immer auf ganze Bytes aufgefüllt, daher erhält auch ein Wert unter 16 im höchstwertigen Byte eine führende Null.

Beispiele für Basis32 und Basis64

Mit denselben beiden Zahlen wie oben:

DezimalBasis16Basis32Basis64
255FF74======/w==
100003E8APUA====A+g=

So wird ein codierter Wert zurück in eine Dezimalzahl konvertiert

Fügen Sie eine Zeichenkette aus Basis16, Basis32 oder Basis64 in das Feld für den codierten Wert ein und wählen Sie dann diese Basis aus dem danebenstehenden Auswahlmenü. Das Tool prüft die Zeichen anhand des Alphabets dieser Basis, kehrt die obigen Schritte um und zeigt den Dezimalwert an. Die Decodierung von FF als Basis16 ergibt 255.

Das Tool nennt außerdem die Basis, die ein eingefügter Wert offenbar verwendet. Diese Angabe dient nur als Hinweis. Das Auswahlmenü bestimmt weiterhin, wie der Wert gelesen wird, da das Basis16-Alphabet Teil des Basis32-Alphabets ist und eine kurze Zeichenkette wie ABCD in beiden eine gültige Wertdarstellung ist.

Bei der Basis16-Eingabe können Groß- und Kleinbuchstaben gemischt werden; das Tool behandelt ff und FF gleich. Eine ungerade Anzahl von Hexadezimalziffern wird nach ihrem Stellenwert gelesen, wobei eine führende Null angenommen wird, sodass 1F4 und 01F4 beide 500 ergeben. Die Basis32-Eingabe muss in Großbuchstaben erfolgen: Der Decoder des Tools akzeptiert keine Kleinbuchstaben in Basis32 und meldet einen Fehler, wenn er solche sieht. Bei Basis64 werden Groß- und Kleinbuchstaben wie vom Format vorgeschrieben als unterschiedliche Symbole behandelt; die Groß- und Kleinschreibung muss daher genau wie dargestellt eingegeben werden.

Einige Zeichenketten können niemals aus einem Encoder stammen, und das Tool weist sie zurück, statt zu raten. RFC 4648 bildet Basis64 in Gruppen von 4 Zeichen und Basis32 in Gruppen von 8 Zeichen. Ohne eine eventuelle =-Auffüllung zu berücksichtigen, enthält eine Basis64-Zeichenkette 1 Zeichen über einem Vielfachen von 4 oder eine Basis32-Zeichenkette 1, 3 oder 6 Zeichen über einem Vielfachen von 8 kein vollständiges Byte. Eine solche Eingabe erzeugt einen Fehler statt einer Zahl.

Wertebereich

Die größte Zahl, die das Tool akzeptiert, ist 9,007,199,254,740,991, gleich 2^53 − 1. Dies ist die größte ganze Zahl, die die JavaScript-Engine eines Webbrowsers exakt darstellen kann. Oberhalb dieser Grenze können einige Ganzzahlen nicht mehr präzise gespeichert werden. Das Tool meldet daher einen Fehler, statt unbemerkt eine falsche Ziffer zurückzugeben. Null und jede ganze Zahl bis zu dieser Grenze werden akzeptiert; die Zahl muss nicht positiv, sondern nur nicht negativ sein.

Die Grenze gilt in beiden Richtungen. Eine codierte Zeichenkette, die für eine größere Zahl steht, etwa der Basis16-Wert 20000000000000 (der 2^53 entspricht), wird zurückgewiesen und nicht gerundet. Auch Brüche werden abgelehnt: Die Codierungen beschreiben ganze Bytes, daher erzeugt 1.5 einen Fehler statt eines gerundeten Ergebnisses.

Wo die einzelnen Codierungen verwendet werden

  • Basis16 kommt bei CSS- und HTML-Farbwerten, MAC- und IPv6-Adressen sowie bei Hash-Werten zum Einsatz, mit denen geprüft wird, ob eine Datei verändert wurde.
  • Basis32 findet sich in Einrichtungsschlüsseln für die Zwei-Faktor-Authentifizierung, einigen Dateifreigabesystemen und anderen Kennungen, die zum Vorlesen oder zur manuellen Eingabe gedacht sind.
  • Basis64 kommt in data:-URIs, E-Mail-Anhängen und Web-Token wie JWTs zum Einsatz, überall dort, wo Binärdaten durch ein für Text ausgelegtes System übertragen werden müssen.

Die Umwandlung zwischen diesen Codierungen ändert niemals die zugrunde liegende Zahl. Sie ändert nur die Anzahl der Zeichen, die für ihre Darstellung erforderlich sind, und welche Systeme diesen Text sicher übertragen können.

Häufig gestellte Fragen

Was ist der Unterschied zwischen Basis16, Basis32 und Basis64? Sie unterscheiden sich darin, wie viele Symbole jedes Zeichen darstellen kann: 16, 32 oder 64. Mehr Symbole pro Zeichen ergeben für dieselbe Zahl eine kürzere codierte Zeichenkette, erfordern jedoch ein größeres Alphabet zum Lesen.

Warum wird 1000 in Basis16 als 03E8 statt als 3E8 codiert? Die Hexadezimalausgabe wird auf eine ganze Anzahl von Bytes aufgefüllt, mit zwei Hexadezimalziffern pro Byte. 1000 benötigt zwei Bytes, daher enthält das Ergebnis immer vier Hexadezimalziffern, auch wenn die führende Ziffer null ist.

Ist Basis32 unabhängig von der Groß- und Kleinschreibung? Das Basis32-Alphabet ist mit Großbuchstaben definiert. Der Decoder dieses Tools akzeptiert nur Basis32-Eingaben in Großbuchstaben; Kleinbuchstaben erzeugen einen Fehler.

Welche größte Zahl kann der Konverter verarbeiten? 9,007,199,254,740,991; dies entspricht 2^53 − 1. Das ist die Grenze der exakten Ganzzahlpräzision in JavaScript, der Sprache, in der das Tool ausgeführt wird.

Kann ich eine negative Zahl konvertieren? Nein. Das Tool akzeptiert nur ganze Zahlen ab null.

Warum weist das Tool manche Zeichenketten zurück, die wie gültiges Basis64 aussehen? Basis64 wird in Gruppen von 4 Zeichen geschrieben. Ein Wert, dessen Länge 1 über einem Vielfachen von 4 liegt, codiert daher kein vollständiges Byte. Kein Encoder kann ihn erzeugen, deshalb meldet das Tool einen Fehler, statt eine Zahl zurückzugeben.

Ändert die Umwandlung einer Zahl zwischen Basen ihren Wert? Nein. Sie ändert nur die Schreibweise. 255, FF, 74====== und /w== stellen alle dieselbe Zahl dar.