dynamic-bit-array

0.0.2 • Public • Published

Dynamic Bit Array

Build Status

A Bit Array that grows in side as you set more bits

Installation

npm install --save dynamic-bit-array

Usage

Setting and checking bits

const BitArray = require('dynamic-bit-array')
 
const array = new BitArray()
array.set(0, true)
array.set(3, true)
array.set(7, true)
 
console.log(array.get(0)) // true
console.log(array.get(1)) // false
console.log(array.toString()) // "00000000000000000000000010001001"
console.log(array.toString(/*skipLeadingZero=*/true)) // "10001001"

Creating bit array from string

const BitArray = require('dynamic-bit-array')
 
const array = BitArray.fromString("1001")
 
console.log(array.get(0)) //true
console.log(array.get(1)) //false
console.log(array.get(2)) //false
console.log(array.get(3)) //true
console.log(array.toString(/*skipLeadingZero=*/true)) // "1001"

Logical operations on arrays

NOT

const BitArray = require('dynamic-bit-array')
 
const array = new BitArray(32)
console.log(array.toString()) // "00000000000000000000000000000000"
console.log(array.not().toString()) // "11111111111111111111111111111111"
 
const other = BitArray.fromString("00000000000000001111111111111111")
console.log(other.not().toString()) // "11111111111111110000000000000000"

AND

const BitArray = require('dynamic-bit-array')
 
const arrayA = BitArray.fromString("1001")
const arrayB = BitArray.fromString("1100")
 
console.log(arrayA.and(arrayB).toString(/*skipLeadingZero=*/true)) // "1000"

OR

const BitArray = require('dynamic-bit-array')
 
const arrayA = BitArray.fromString("1001")
const arrayB = BitArray.fromString("1100")
 
console.log(arrayA.or(arrayB).toString(/*skipLeadingZero=*/true)) // "1101"

XOR

const BitArray = require('dynamic-bit-array')
 
const arrayA = BitArray.fromString("1001")
const arrayB = BitArray.fromString("1100")
 
console.log(arrayA.xor(arrayB).toString(/*skipLeadingZero=*/true)) // "0101"

Package Sidebar

Install

npm i dynamic-bit-array

Weekly Downloads

2

Version

0.0.2

License

MIT

Last publish

Collaborators

  • ayastreb