bases
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/bases package

0.2.1 • Public • Published

Build Status

bases.js

Utility for converting numbers to/from different bases/alphabets. Common bases have convenience aliases (see below), but arbitrary/custom alphabets can be used.

Installation

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>

Usage

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

API

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.

Known Bases/Alphabets

Numbers only:

Base-2 01
... 012...
Base-10 0123456789

Letters only:

Base-26 abcdefghijklmnopqrstuvwxyz
Base-52 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

Alphanumeric:

Base-11 0123456789a
... 0123456789ab...
Base-16 0123456789abcdef
Base-36 0123456789abcdefghijklmnopqrstuvwxyz
Base-62 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

Human-friendly:

Base-32 (from Douglas Crockford) 0123456789ABCDEFGHJKMNPQRSTVWXYZ (no IOLU)
Base-58 (from Flickr) 123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ (no 0lIO)

Other:

Base-64 (as standardized) 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!

License

MIT license. (c) 2012-2014 Aseem Kishore and contributors.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.2.1
    4,556
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.2.1
    4,556
  • 0.2.0
    2
  • 0.1.1
    2
  • 0.1.0
    2

Package Sidebar

Install

npm i bases

Weekly Downloads

4,562

Version

0.2.1

License

none

Last publish

Collaborators

  • aseemk