Skip to content

ayastreb/dynamic-bit-array

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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"

About

A Bit Array that grows as you set more bits

Resources

License

Stars

Watchers

Forks

Packages

No packages published