So wandeln Sie Base64 in Dezimal um
- Fügen Sie das Base64 in Eingabe · Base64 ein. Leerzeichen, Zeilenumbrüche, URL-sichere Zeichen und fehlendes Padding sind kein Problem.
- Die Bytewerte erscheinen in Ausgabe · Dezimal-Bytes.
- Wählen Sie unter der Ausgabe das Trennzeichen: Leerzeichen,
,,,oder Zeilenumbruch. - Mit Ausgabe kopieren oder Herunterladen erhalten Sie die Liste. Der Schalter Dezimal-Bytes → Base64 oder die Seite Dezimal in Base64 kehrt die Umwandlung um.
Beispiele
| Base64 | Dezimal-Bytes | Was es ist |
|---|---|---|
SGkh | 72 105 33 | der Text Hi! |
SGkh/w== | 72 105 33 255 | Hi! plus ein Byte 0xff |
AQA= | 1 0 | zwei Bytes, 256 als 16-Bit-Zahl in Big-Endian |
AAAA | 0 0 0 | drei Nullbytes |
//// | 255 255 255 | drei Bytes, bei denen jedes Bit gesetzt ist |
fwAAAQ== | 127 0 0 1 | eine IPv4-Adresse, 127.0.0.1, als vier rohe Bytes |
Die letzte Zeile zeigt eine praktische Anwendung: Binärformate speichern IPv4-Adressen als vier Bytes, und die Dezimalliste ist die vertraute Punktschreibweise ohne die Punkte.
Bytewerte oder eine große Zahl
Dieser Konverter listet Bytes auf. Liest man den ganzen Base64-Wert als eine einzige Ganzzahl, erhält man ein anderes Ergebnis, und zwar eines, das von der Bytereihenfolge abhängt: Die zwei Bytes 1 0 sind als Big-Endian-Zahl gelesen 256 und als Little-Endian 1. Was richtig ist, hängt vom Format ab, das die Daten erzeugt hat; die Umwandlung gehört daher in Code, in dem Sie das festlegen können:
import base64
data = base64.b64decode("AQA=")
list(data) # [1, 0]
int.from_bytes(data, "big") # 256
int.from_bytes(data, "little") # 1
Dasselbe gilt für Base64, das einen 32-Bit-Zähler, einen Zeitstempel oder eine große ID enthält: Die Dezimalliste liefert die Bytes, int.from_bytes oder in JavaScript DataView liefert die Zahl.
Wo Dezimal-Bytelisten verwendet werden
- JSON. Manche Serializer schreiben Binärdaten als Array von Zahlen. Nodes
JSON.stringify(Buffer.from("Hi!"))ergibt{"type":"Buffer","data":[72,105,33]}. Mit dem Trennzeichen,und Klammern erhalten Sie dieselbe Form. - Python und Tabellenkalkulation.
list(b)gibt in Python Dezimalwerte aus, und eine Spalte von Zahlen (Trennzeichen Zeilenumbruch) lässt sich direkt in eine Tabelle einfügen. - Mikrocontroller und serielle Monitore. Arduino-Code und viele serielle Tools zeigen Bytes dezimal an. Für eine typisierte Array-Deklaration in C oder einer anderen Sprache schreibt Base64 in Byte-Array das vollständige Literal.
Wollen Sie die Bytes lesen, statt sie irgendwo einzufügen, ist Hex meist übersichtlicher, weil jedes Byte genau zwei Zeichen hat: Probieren Sie Base64 in Hex.
Base64 in Dezimal im Code
import base64
list(base64.b64decode("SGkh/w==")) # [72, 105, 33, 255]
Array.from(Buffer.from("SGkh/w==", "base64")).join(", "); // '72, 105, 33, 255'
In einem Browser ohne Buffer liefert Array.from(atob(s), c => c.charCodeAt(0)) dieselben Zahlen. Die Seiten zu Python und JavaScript gehen tiefer auf das Dekodieren ein.
Häufige Fragen
Was bedeutet „Dezimal“ bei Base64 in Dezimal?
Jedes dekodierte Byte, geschrieben als gewöhnliche Zahl zur Basis 10. Ein Byte fasst 0 bis 255, die Ausgabe ist also eine Liste von Zahlen in diesem Bereich, eine pro Byte.
Wie wandle ich Base64 in eine einzige Zahl statt in eine Liste um?
Lesen Sie die Bytes im Code als eine Ganzzahl. In Python mit int.from_bytes(base64.b64decode(s), "big"); für AQA= ergibt das 256, während diese Seite die Bytes 1 0 auflistet.
Wie bekomme ich aus Base64 ein JSON-Array von Bytes?
Stellen Sie Trennzeichen auf , und setzen Sie das Ergebnis in eckige Klammern. Aus SGkh wird [72, 105, 33], das sich als JSON-Array parsen lässt.
Warum gibt Java -1 aus, wo diese Seite 255 zeigt?
Javas Typ byte hat ein Vorzeichen, Bytes von 128 bis 255 erscheinen daher als −128 bis −1. Die Bits sind identisch. Mit b & 0xff erhalten Sie in Java den hier gezeigten Wert von 0 bis 255.