binary-numbers
TypeScript icon, indicating that this package has built-in type declarations

0.10.6 • Public • Published

binary-numbers

Build Status Code Coverage NPM Version Number

Classes that make working with binary numbers easy!

Allows one to easily work with many different types of binary formats, from standard integer binary numbers to IEEE 754 floating point binary numbers. Also supports numbers which can either grow in size or remain fixed. Includes five different explicitly sizes fixed-length integer classes: Int8, Int16, Int32, Int64, and Int128.

This package is still in early development, and I'd like to make it as good as possible. If you have any suggestions, please open a pull request!

Usage

Bit Manipulation

import { FixedInt } from 'binary-numbers';
 
const int = new FixedInt(94)       // 0b1011110
                    .clearBit(1)   // 0b1011100
                    .clearBit(3)   // 0b1010100
                    .setBit(5)     // 0b1110100
                    .and(0x1F)     // 0b0010100
                    .shiftLeft(2); // 0b1010000
 
console.log(int.toDecimal); // 80

Arithmetic

import { Int8 } from 'binary-numbers';
 
// 12 + 48 + 61
const i1 = new Int8(12);
const i2 = new Int8('0b00110000'); // 48
const i3 = new Int8([1, 0, 1, 1, 1, 1, 0, 0]); // 60, note the
                                               // lsb -> msb convention
 
const result = i1.add(i2).add(i3);
 
console.log(result.toString()); // Int8[0b01111001]
console.log(result.bits); // [1, 0, 0, 1, 1, 1, 1, 0]
console.log(result.toDecimal) // 121

Floating Point

TODO

API

See the API Documentation

Install

With npm installed, run

$ npm install binary-numbers

License

MIT

Package Sidebar

Install

npm i binary-numbers

Weekly Downloads

0

Version

0.10.6

License

MIT

Unpacked Size

2.1 MB

Total Files

122

Last publish

Collaborators

  • mattco