npm

Ready to take your JavaScript development to the next level? Meet npm Enterprise - the ultimate in enterprise JavaScript.Learn more »

number-converter-alphabet

1.1.0 • Public • Published

number-converter-alphabet Build Status

Convert a number to any base/any custom alphabet.

Why

When you need to convert a number to a custom base/alphabet, this comes in handy. For instance, for Excel style column names, you can count from 0 to n and get the representation of the number as a column name: "AZ" "BA" easily.

Install

$ npm install --save number-converter-alphabet

Usage

import convert, { ALPHABET_HEXADECIMAL, ALPHABET_BINARY } from 'number-converter-alphabet';
 
console.log(convert(3735928559, ALPHABET_HEXADECIMAL));
// Output: DEADBEEF
console.log(convert(3735928559, ALPHABET_BINARY))
// Output: 11011110101011011011111011101111
console.log(convert(3735928559, '0123'))
// Output: 3132223123323233
 
console.log(convert(35427, ['ping|', 'pong|', 'tok|']));
// Output: pong|tok|pong|ping|pong|tok|pong|ping|pong|ping|

Implicit leading zero

In our number world, ...00001 === 1, we don't think of the leading zeros. Same for hexadecimal : ...000FF === FF.

But sometimes, you want those to be different. For instance, in Excel, the column name are using the normal alphabet, and after "Z", there is "AA", not "BA".

You can pass an option to control this behavior: implicitLeadingZero (default: true).

import convert, { ALPHABET_ASCII, ALPHABET_DECIMAL } from 'number-converter-alphabet';
 
console.log(convert(26, ALPHABET_ASCII, { implicitLeadingZero: true }));
// Output: ba
console.log(convert(26, ALPHABET_ASCII, { implicitLeadingZero: false }));
// Output: aa
 
console.log(convert(26, ALPHABET_DECIMAL, { implicitLeadingZero: true }));
// Output: 26
console.log(convert(6, ALPHABET_DECIMAL, { implicitLeadingZero: false }));
// Output: 6
console.log(convert(16, ALPHABET_DECIMAL, { implicitLeadingZero: false }));
// Output: 06
console.log(convert(26, ALPHABET_DECIMAL, { implicitLeadingZero: false }));
// Output: 16

Generator

For commodity, there is a also a generator function that is available, to automatically increment the value it outputs :

import generator from 'number-converter-alphabet';
 
const gen = generator(ALPHABET_ASCII)
gen(); // 'a'
gen(); // 'b'
 
const gen = generator(ALPHABET_ASCII, { start: 26 });
gen(); // 'z'
gen(); // 'aa'

install

npm i number-converter-alphabet

Downloadsweekly downloads

15

version

1.1.0

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability