binary-numbers
v0.10.6
Published
Classes that make working with binary numbers easy!
Downloads
12
Maintainers
Readme
binary-numbers
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