Base62
Das Zahlensystem zur Basis 62, auch Base62 genannt, dient zur Kodierung großer Zahlen mittels ASCII-Zeichen. Dabei werden die Ziffern 0–9 (Wert 0–9), Großbuchstaben A–Z (Wert 10–35) und Kleinbuchstaben a–z (Wert 36–61) verwendet.
Durch die hohe Zahlenbasis entstehen kurze Zeichenketten, als mit dem Dezimalsystem und Hexadezimalsystem, was vor allem zwei Vorteile bietet:
- Sie können so von einem Menschen schneller und mit kleinerem Fehlerrisiko eingegeben werden. Dabei sollte ein Font gewählt werden, bei dem verwechslungsfähige Buchstaben wie kleines L und großes I oder Ziffer Null und großes O unterscheidbar sind.
- Längenbeschränkungen, z.B. wenn eine Zahl als Teil eines Bezeichners oder Dateinamens verwendet werden soll, können so umgangen werden. Hier sollte allerdings beachtet werden, dass das verarbeitende System den Unterschied zwischen Groß- und Kleinschreibung erhält.
Inhaltsverzeichnis |
[Bearbeiten] Abschätzung
Die Länge einer Kodierung in Base62 kann mit folgender Formel abgeschätzt werden:
mit s als Anzahl der Stellen im Base-62-Zahlensystem, n als Anzahl der Stellen im System zur Basis b. Die Formel zeigt, dass eine günstige Kompression bei kleinem b erreichbar sind.
Beispiele:
- Eine Zähler vom Typ Long Integer (b = 2) mit 32 Bit, von denen 31 Bit (n = 31) nutzbar, weil nur positiv Zahlen für den Zähler verwendet werden können, benötigt höchstens 6 Stellen.
- Eine 128-stellige Binärzahl (n = 128, b = 2) kann im Zahlensystem zur Basis 62 mit 22 Zeichen kodiert werden, benötigt aber hexadezimal 32 und dezimal 39 Stellen.
- Eine 8-stellige Bankleitzahl (n = 8, b = 10) kann mit 5 Stellen zur Basis 62 codiert werden.
[Bearbeiten] Anwendungsbereiche
Typische Anwendungen sind Hashcodes, Schlüssel in der Kryptologie und automatisch generierte PINs. Base62 wird auch zur Komprimierung von JavaScript genutzt, um die Gesamtgröße von Webseiten mit hohen Anteilen von JavaScript geringer zu halten. [1]
Da Base62 keine Sonderzeichen enthält kann dieses Verfahren auch in URLs und anderen Identifiern genutzt werden. Allerdings kann beispielsweise Base64 effizienter kodiert und dekodiert werden.
