Utility for converting numbers to/from different bases/alphabets. Common bases have convenience aliases (see below), but arbitrary/custom alphabets can be used.
On the server side w/ Node.js:
npm install bases
Or in the browser (adds a global Bases variable for now):
<script src="bases.js"></script>
var bases = require('./bases'); // or window.Bases in the browser bases.toBase16(200); // => 'c8' bases.toBase62(99999); // => 'q0T' bases.toAlphabet(300, 'aAbBcC'); // => 'Abba' bases.fromBase16('c8'); // => 200 bases.fromBase62('q0T'); // => 99999 bases.fromAlphabet('Abba', 'aAbBcC'); // => 300
Going from numbers to strings:
-
toAlphabet(num, alphabet): returns a string representation of the given number for the given alphabet, where the alphabet is an arbitrary string of characters. (See known alphabets below for examples.) -
toBase(num, base): convenience helper for known bases (see below). -
toBaseX(num): convenience helpers for known bases (see below), e.g.toBase62(num).
Going from strings to numbers:
-
fromAlphabet(str, alphabet): returns an integer representation of the given string for the given alphabet. -
fromBase(num, base): convenience helper for known bases. -
fromBaseX(str): convenience helpers for known bases.
Numbers only:
01
012...
0123456789
Letters only:
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
Alphanumeric:
0123456789a
0123456789ab...
0123456789abcdef
0123456789abcdefghijklmnopqrstuvwxyz
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
Human-friendly:
Other:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
Base-64 warning: besides there being several different standards, padding isn't currently added and line lengths aren't tracked. Not recommended for use with APIs that expect formal base-64 strings!
MIT license. (c) 2012-2014 Aseem Kishore and contributors.