aybabtu
All Your Base Are Belong To UsA simple and convenient API for converting data between mathematical bases.
Disclaimer
Use of this library is quite silly since all it is really doing is this:parseInt(myValue, baseFrom).toString(baseTo)
Why use aybabtu then? - Your app could always use another dependency - 31,200% unit test coverage (pay no attention to the coveralls badge) - Magic constants like
16
(base hex) and 10
(base dec) can confuse junior devs
- Because parseInt
and toString
should never be seen together so we hide them for you
- Somebody set up us the bomb.Limitations
32-bit limitation
JavaScript caps bitwise operator support at 32 bits, so givingaybabtu
a value larger than that won't work.A simple workaround is to break up your value into 32 bit chunks, for example:
const tooLargeBinary = '11111011000001010011100101111001010001110011100011011010';
const wrongValue = base.bin2hex(tooLargeBinary); // "fb0539794738d8"
const rightValue = tooLargeBinary.match(/.{1,32}/g).map(base.bin2hex).join(''); // "fb0539794738da"
Install
$ npm install aybabtu --save
Run the specs
$ npm test
Usage
Using quick methods
const base = require('aybabtu');
base.dec2hex('42'); // '2a'
Using the master converter
const { allYour } = require('aybabtu');
allYour('decimal').areBelongTo('binary')(50); // '110010'
Supported Bases
- Binary - Ternary - Quaternary - Quinary - Senary - Septenary - Octal - Nonary - Decimal - Undenary - Duodecimal - Hexadecimal - VigesimalBinary: Base 2
Convert to Ternary
String → Stringexpect(bin2ter('110010')).toBe('1212');
Convert to Quaternary
String → Stringexpect(bin2qua('110010')).toBe('302');
Convert to Quinary
String → Stringexpect(bin2qui('110010')).toBe('200');
Convert to Senary
String → Stringexpect(bin2sen('110010')).toBe('122');
Convert to Septenary
String → Stringexpect(bin2sep('110010')).toBe('101');
Convert to Octal
String → Stringexpect(bin2oct('110010')).toBe('62');
Convert to Nonary
String → Stringexpect(bin2non('110010')).toBe('55');
Convert to Decimal
String → Stringexpect(bin2dec('110010')).toBe('50');
Convert to Undenary
String → Stringexpect(bin2und('110010')).toBe('46');
Convert to Duodecimal
String → Stringexpect(bin2duo('110010')).toBe('42');
Convert to Hexadecimal
String → Stringexpect(bin2hex('110010')).toBe('32');
Convert to Vigesimal
String → Stringexpect(bin2vig('110010')).toBe('2a');
Ternary: Base 3
Convert to Binary
String → Stringexpect(ter2bin('1212')).toBe('110010');
Convert to Quaternary
String → Stringexpect(ter2qua('1212')).toBe('302');
Convert to Quinary
String → Stringexpect(ter2qui('1212')).toBe('200');
Convert to Senary
String → Stringexpect(ter2sen('1212')).toBe('122');
Convert to Septenary
String → Stringexpect(ter2sep('1212')).toBe('101');
Convert to Octal
String → Stringexpect(ter2oct('1212')).toBe('62');
Convert to Nonary
String → Stringexpect(ter2non('1212')).toBe('55');
Convert to Decimal
String → Stringexpect(ter2dec('1212')).toBe('50');
Convert to Undenary
String → Stringexpect(ter2und('1212')).toBe('46');
Convert to Duodecimal
String → Stringexpect(ter2duo('1212')).toBe('42');
Convert to Hexadecimal
String → Stringexpect(ter2hex('1212')).toBe('32');
Convert to Vigesimal
String → Stringexpect(ter2vig('1212')).toBe('2a');
Quaternary: Base 4
Convert to Binary
String → Stringexpect(qua2bin('302')).toBe('110010');
Convert to Ternary
String → Stringexpect(qua2ter('302')).toBe('1212');
Convert to Quinary
String → Stringexpect(qua2qui('302')).toBe('200');
Convert to Senary
String → Stringexpect(qua2sen('302')).toBe('122');
Convert to Septenary
String → Stringexpect(qua2sep('302')).toBe('101');
Convert to Octal
String → Stringexpect(qua2oct('302')).toBe('62');
Convert to Nonary
String → Stringexpect(qua2non('302')).toBe('55');
Convert to Decimal
String → Stringexpect(qua2dec('302')).toBe('50');
Convert to Undenary
String → Stringexpect(qua2und('302')).toBe('46');
Convert to Duodecimal
String → Stringexpect(qua2duo('302')).toBe('42');
Convert to Hexadecimal
String → Stringexpect(qua2hex('302')).toBe('32');
Convert to Vigesimal
String → Stringexpect(qua2vig('302')).toBe('2a');
Quinary: Base 5
Convert to Binary
String → Stringexpect(qui2bin('200')).toBe('110010');
Convert to Ternary
String → Stringexpect(qui2ter('200')).toBe('1212');
Convert to Quaternary
String → Stringexpect(qui2qua('200')).toBe('302');
Convert to Senary
String → Stringexpect(qui2sen('200')).toBe('122');
Convert to Septenary
String → Stringexpect(qui2sep('200')).toBe('101');
Convert to Octal
String → Stringexpect(qui2oct('200')).toBe('62');
Convert to Nonary
String → Stringexpect(qui2non('200')).toBe('55');
Convert to Decimal
String → Stringexpect(qui2dec('200')).toBe('50');
Convert to Undenary
String → Stringexpect(qui2und('200')).toBe('46');
Convert to Duodecimal
String → Stringexpect(qui2duo('200')).toBe('42');
Convert to Hexadecimal
String → Stringexpect(qui2hex('200')).toBe('32');
Convert to Vigesimal
String → Stringexpect(qui2vig('200')).toBe('2a');
Senary: Base 6
Convert to Binary
String → Stringexpect(sen2bin('122')).toBe('110010');
Convert to Ternary
String → Stringexpect(sen2ter('122')).toBe('1212');
Convert to Quaternary
String → Stringexpect(sen2qua('122')).toBe('302');
Convert to Quinary
String → Stringexpect(sen2qui('122')).toBe('200');
Convert to Septenary
String → Stringexpect(sen2sep('122')).toBe('101');
Convert to Octal
String → Stringexpect(sen2oct('122')).toBe('62');
Convert to Nonary
String → Stringexpect(sen2non('122')).toBe('55');
Convert to Decimal
String → Stringexpect(sen2dec('122')).toBe('50');
Convert to Undenary
String → Stringexpect(sen2und('122')).toBe('46');
Convert to Duodecimal
String → Stringexpect(sen2duo('122')).toBe('42');
Convert to Hexadecimal
String → Stringexpect(sen2hex('122')).toBe('32');
Convert to Vigesimal
String → Stringexpect(sen2vig('122')).toBe('2a');
Septenary: Base 7
Convert to Binary
String → Stringexpect(sep2bin('101')).toBe('110010');
Convert to Ternary
String → Stringexpect(sep2ter('101')).toBe('1212');
Convert to Quaternary
String → Stringexpect(sep2qua('101')).toBe('302');
Convert to Quinary
String → Stringexpect(sep2qui('101')).toBe('200');
Convert to Senary
String → Stringexpect(sep2sen('101')).toBe('122');
Convert to Octal
String → Stringexpect(sep2oct('101')).toBe('62');
Convert to Nonary
String → Stringexpect(sep2non('101')).toBe('55');
Convert to Decimal
String → Stringexpect(sep2dec('101')).toBe('50');
Convert to Undenary
String → Stringexpect(sep2und('101')).toBe('46');
Convert to Duodecimal
String → Stringexpect(sep2duo('101')).toBe('42');
Convert to Hexadecimal
String → Stringexpect(sep2hex('101')).toBe('32');
Convert to Vigesimal
String → Stringexpect(sep2vig('101')).toBe('2a');
Octal: Base 8
Convert to Binary
String → Stringexpect(oct2bin('62')).toBe('110010');
Convert to Ternary
String → Stringexpect(oct2ter('62')).toBe('1212');
Convert to Quaternary
String → Stringexpect(oct2qua('62')).toBe('302');
Convert to Quinary
String → Stringexpect(oct2qui('62')).toBe('200');
Convert to Senary
String → Stringexpect(oct2sen('62')).toBe('122');
Convert to Septenary
String → Stringexpect(oct2sep('62')).toBe('101');
Convert to Nonary
String → Stringexpect(oct2non('62')).toBe('55');
Convert to Decimal
String → Stringexpect(oct2dec('62')).toBe('50');
Convert to Undenary
String → Stringexpect(oct2und('62')).toBe('46');
Convert to Duodecimal
String → Stringexpect(oct2duo('62')).toBe('42');
Convert to Hexadecimal
String → Stringexpect(oct2hex('62')).toBe('32');
Convert to Vigesimal
String → Stringexpect(oct2vig('62')).toBe('2a');
Nonary: Base 9
Convert to Binary
String → Stringexpect(non2bin('55')).toBe('110010');
Convert to Ternary
String → Stringexpect(non2ter('55')).toBe('1212');
Convert to Quaternary
String → Stringexpect(non2qua('55')).toBe('302');
Convert to Quinary
String → Stringexpect(non2qui('55')).toBe('200');
Convert to Senary
String → Stringexpect(non2sen('55')).toBe('122');
Convert to Septenary
String → Stringexpect(non2sep('55')).toBe('101');
Convert to Octal
String → Stringexpect(non2oct('55')).toBe('62');
Convert to Decimal
String → Stringexpect(non2dec('55')).toBe('50');
Convert to Undenary
String → Stringexpect(non2und('55')).toBe('46');
Convert to Duodecimal
String → Stringexpect(non2duo('55')).toBe('42');
Convert to Hexadecimal
String → Stringexpect(non2hex('55')).toBe('32');
Convert to Vigesimal
String → Stringexpect(non2vig('55')).toBe('2a');
Decimal: Base 10
Convert to Binary
String → Stringexpect(dec2bin('50')).toBe('110010');
Convert to Ternary
String → Stringexpect(dec2ter('50')).toBe('1212');
Convert to Quaternary
String → Stringexpect(dec2qua('50')).toBe('302');
Convert to Quinary
String → Stringexpect(dec2qui('50')).toBe('200');
Convert to Senary
String → Stringexpect(dec2sen('50')).toBe('122');
Convert to Septenary
String → Stringexpect(dec2sep('50')).toBe('101');
Convert to Octal
String → Stringexpect(dec2oct('50')).toBe('62');
Convert to Nonary
String → Stringexpect(dec2non('50')).toBe('55');
Convert to Undenary
String → Stringexpect(dec2und('50')).toBe('46');
Convert to Duodecimal
String → Stringexpect(dec2duo('50')).toBe('42');
Convert to Hexadecimal
String → Stringexpect(dec2hex('50')).toBe('32');
Convert to Vigesimal
String → Stringexpect(dec2vig('50')).toBe('2a');
Undenary: Base 11
Convert to Binary
String → Stringexpect(und2bin('46')).toBe('110010');
Convert to Ternary
String → Stringexpect(und2ter('46')).toBe('1212');
Convert to Quaternary
String → Stringexpect(und2qua('46')).toBe('302');
Convert to Quinary
String → Stringexpect(und2qui('46')).toBe('200');
Convert to Senary
String → Stringexpect(und2sen('46')).toBe('122');
Convert to Septenary
String → Stringexpect(und2sep('46')).toBe('101');
Convert to Octal
String → Stringexpect(und2oct('46')).toBe('62');
Convert to Nonary
String → Stringexpect(und2non('46')).toBe('55');
Convert to Decimal
String → Stringexpect(und2dec('46')).toBe('50');
Convert to Duodecimal
String → Stringexpect(und2duo('46')).toBe('42');
Convert to Hexadecimal
String → Stringexpect(und2hex('46')).toBe('32');
Convert to Vigesimal
String → Stringexpect(und2vig('46')).toBe('2a');
Duodecimal: Base 12
Convert to Binary
String → Stringexpect(duo2bin('42')).toBe('110010');
Convert to Ternary
String → Stringexpect(duo2ter('42')).toBe('1212');
Convert to Quaternary
String → Stringexpect(duo2qua('42')).toBe('302');
Convert to Quinary
String → Stringexpect(duo2qui('42')).toBe('200');
Convert to Senary
String → Stringexpect(duo2sen('42')).toBe('122');
Convert to Septenary
String → Stringexpect(duo2sep('42')).toBe('101');
Convert to Octal
String → Stringexpect(duo2oct('42')).toBe('62');
Convert to Nonary
String → Stringexpect(duo2non('42')).toBe('55');
Convert to Decimal
String → Stringexpect(duo2dec('42')).toBe('50');
Convert to Undenary
String → Stringexpect(duo2und('42')).toBe('46');
Convert to Hexadecimal
String → Stringexpect(duo2hex('42')).toBe('32');
Convert to Vigesimal
String → Stringexpect(duo2vig('42')).toBe('2a');
Hexadecimal: Base 16
Convert to Binary
String → Stringexpect(hex2bin('32')).toBe('110010');
Convert to Ternary
String → Stringexpect(hex2ter('32')).toBe('1212');
Convert to Quaternary
String → Stringexpect(hex2qua('32')).toBe('302');
Convert to Quinary
String → Stringexpect(hex2qui('32')).toBe('200');
Convert to Senary
String → Stringexpect(hex2sen('32')).toBe('122');
Convert to Septenary
String → Stringexpect(hex2sep('32')).toBe('101');
Convert to Octal
String → Stringexpect(hex2oct('32')).toBe('62');
Convert to Nonary
String → Stringexpect(hex2non('32')).toBe('55');
Convert to Decimal
String → Stringexpect(hex2dec('32')).toBe('50');
Convert to Undenary
String → Stringexpect(hex2und('32')).toBe('46');
Convert to Duodecimal
String → Stringexpect(hex2duo('32')).toBe('42');
Convert to Vigesimal
String → Stringexpect(hex2vig('32')).toBe('2a');
Vigesimal: Base 20
Convert to Binary
String → Stringexpect(vig2bin('2a')).toBe('110010');
Convert to Ternary
String → Stringexpect(vig2ter('2a')).toBe('1212');
Convert to Quaternary
String → Stringexpect(vig2qua('2a')).toBe('302');
Convert to Quinary
String → Stringexpect(vig2qui('2a')).toBe('200');
Convert to Senary
String → Stringexpect(vig2sen('2a')).toBe('122');
Convert to Septenary
String → Stringexpect(vig2sep('2a')).toBe('101');
Convert to Octal
String → Stringexpect(vig2oct('2a')).toBe('62');
Convert to Nonary
String → Stringexpect(vig2non('2a')).toBe('55');
Convert to Decimal
String → Stringexpect(vig2dec('2a')).toBe('50');
Convert to Undenary
String → Stringexpect(vig2und('2a')).toBe('46');
Convert to Duodecimal
String → Stringexpect(vig2duo('2a')).toBe('42');
Convert to Hexadecimal
String → Stringexpect(vig2hex('2a')).toBe('32');