bit-vec v1.0.4
bit-vec
A lightweight, performant and well documented BitArray/BitVector implementation written in javascript.
Installing
Via NPM: npm install bit-vec --save.
Getting Started
After installing
import BitVector from 'bit-vec';
const bitVec = new BitVector(8);Example Usage:
import BitVector from 'bit-vec';
const bitVec = new BitVector(8);
bitVec.set(5, 1);
bitVec.test(5); // true
bitVec.flip(5);
bitVec.test(5); // false
// Chaining.
bitVec
.set(5)
.set(3)
.set(1)
.clearRange(0, 4)
.test(3); // falseCondensed Documentation
Below is a condensed form of the documentation, each is a function that can be found on the BitVector object, called like so.
const bitVec = new BitVector(42);
bitVec.test(34); // false
bitVec.set(34, 1);
bitVec.test(34); // true| Method | Parameters | Return |
|---|---|---|
| .get(index) | index:Number | Number, 1 if set, 0 if not. |
| .set(index) | index:Number | Returns this with the bit set. |
| .test(index) | index:Number | Returns Boolean true if index is set, false otherwise . |
| .clear(index) | index:Number | Returns this with cleared bit. |
| .flip(index) | index:Number | Returns this with flipper bit. |
| .count() | None | Returns Number number of indices currently set to 1. |
| .setRange(begin, end, value = 1) | begin:Number, end:Number, value:Number | Returns this with bits set. |
| .clearRange(begin, end) | begin:Number, end:Number | Returns this with bits cleared. |
| .equals(bitVec) | bitVec:BitVector | Returns Boolean true if the two bit vectors are equal, false otherwise. |
| .notEquals(bitVec) | bitVec:BitVector | Returns Boolean true if the two bit vectors are different, false otherwise. |
| .or(bitVec) | bitVec:BitVector | Returns new BitVector object with the result of the operation. |
| .xor(bitVec) | bitVec:BitVector | Returns new BitVector object with the result of the operation. |
| .and(bitVec) | bitVec:BitVector | Returns new BitVector object with the result of the operation. |
| .not() | None | Returns new BitVector object with the result of the operation. |
| .invert() | None | Returns this with updated array. |
| .orEqual(bitVec) | bitVec:BitVector | Returns new BitVector object with the result of the operation. |
| .xorEqual(bitVec) | bitVec:BitVector | Returns new BitVector object with the result of the operation. |
| .andEqual(bitVec) | bitVec:BitVector | Returns new BitVector object with the result of the operation. |
| .notEqual() | None | Returns new BitVector object with the result of the operation. |
| .isEmpty() | None | Returns Boolean true if the bit vector has no set bits, false otherwise. |
Full Documentation
get
bitVec.get(index)
Performs a get operation on the given index, retrieving the stored value (0 or 1).
Parameters
- index -> Number for index: 0 <= index < bitVec.bits.
Returns
Number, 1 if set, 0 otherwise.
Example
bitVec.get(52); // 0set
bitVec.set(index)
Performs a set operation on the given index, setting the value to either 0 or 1.
Parameters
- index -> Number for index: 0 <= index < bitVec.bits.
- value -> Number, 0 or 1, defaults to 1.
Returns
Returns BitVector for chaining with the bit set.
Example
bitVec.set(52); // BitVectortest
bitVec.test(index)
Tests whether the given index is set to 1.
Parameters
- index -> Number for index: 0 <= index < bitVec.bits.
Returns
Returns Boolean true if index is set, false otherwise .
Example
bitVec.set(52, 1);
bitVec.test(52); // trueclear
bitVec.clear(index)
Clears the bit at the given index.
Parameters
- index -> Number for index: 0 <= index < bitVec.bits.
Returns
Returns BitVector for chaining with the bit cleared.
Example
bitVec.set(52, 1);
bitVec.test(52); // trueflip
bitVec.flip(index)
Flips the bit at the given index.
Parameters
- index -> Number for index: 0 <= index < bitVec.bits.
Returns
Returns BitVector for chaining with the bit cleared.
Example
bitVec.flip(52);count
bitVec.count()
Counts the number of set bits in the bit vector.
Parameters
- None
Returns
Returns Number number of indices currently set to 1.
Example
bitVec.count();setRange
bitVec.setRange(begin, end, value = 1)
Sets a range of bits from begin to end.
Parameters
- begin -> Number for index: 0 <= index < bitVec.bits.
- end -> Number for index: 0 <= index < bitVec.bits.
- value -> The value to set the index to (0 or 1).
Returns
Returns this with bits set.
Example
bitVec.setRange(2, 6);clearRange
bitVec.clearRange(begin, end)
Clears a range of bits from begin to end.
Parameters
- begin -> Number for index: 0 <= index < bitVec.bits.
- end -> Number for index: 0 <= index < bitVec.bits.
Returns
Returns this with bits cleared.
Example
bitVec.clearRange(2, 6);equals
bitVec.equals(otherBitVec)
Determines if two bit vectors are equal.
Parameters
- bitVec -> BitVector, instance of BitVector class.
Returns
Returns Boolean true if the two bit vectors are equal, false otherwise.
Example
bitVec.equals(otherBitVec);notEquals
bitVec.notEquals(otherBitVec)
Determines if two bit vectors are not equal.
Parameters
- bitVec -> BitVector, instance of BitVector class.
Returns
Returns Boolean true if the two bit vectors are equal, false otherwise.
Example
bitVec.notEquals(otherBitVec);or
bitVec.or(otherBitVec)
Performs the bitwise or operation between two BitVectors and returns the result as a new BitVector object.
Parameters
- bitVec -> BitVector, instance of BitVector class.
Returns
Returns new BitVector object with the result of the operation.
Example
bitVec.or(otherBitVec);xor
bitVec.xor(otherBitVec)
Performs the bitwise xor operation between two BitVectors and returns the result as a new BitVector object.
Parameters
- bitVec -> BitVector, instance of BitVector class.
Returns
Returns new BitVector object with the result of the operation.
Example
bitVec.xor(otherBitVec);and
bitVec.and(otherBitVec)
Performs the bitwise and operation between two BitVectors and returns the result as a new BitVector object.
Parameters
- bitVec -> BitVector, instance of BitVector class.
Returns
Returns new BitVector object with the result of the operation.
Example
bitVec.and(otherBitVec);not
bitVec.not()
Performs the bitwise not operation between two BitVectors and returns the result as a new BitVector object.
Parameters
- None
Returns
Returns new BitVector object with the result of the operation.
Example
bitVec.not();invert
bitVec.invert()
Inverts this BitVector, alias of .not().
Parameters
- None
Returns
Returns new BitVector object with the result of the operation.
Example
bitVec.invert();orEqual
bitVec.orEqual(otherBitVec)
Performs the bitwise or operation between two BitVectors and assigns the result to this BitVector.
Parameters
- bitVec -> BitVector, instance of BitVector class.
Returns
Returns this for chaining with the bits set.
Example
bitVec.orEqual(otherBitVec);xorEqual
bitVec.xorEqual(otherBitVec)
Performs the bitwise xor operation between two BitVectors and assigns the result to this BitVector.
Parameters
- bitVec -> BitVector, instance of BitVector class.
Returns
Returns this for chaining with the bits set.
Example
bitVec.xorEqual(otherBitVec);andEqual
bitVec.andEqual(otherBitVec)
Performs the bitwise and operation between two BitVectors and assigns the result to this BitVector.
Parameters
- bitVec -> BitVector, instance of BitVector class.
Returns
Returns this for chaining with the bits set.
Example
bitVec.andEqual(otherBitVec);notEqual
bitVec.notEqual(otherBitVec)
Performs the bitwise not operation between two BitVectors and assigns the result to this BitVector.
Parameters
- bitVec -> BitVector, instance of BitVector class.
Returns
Returns this for chaining with the bits set.
Example
bitVec.notEqual(otherBitVec);isEmpty
bitVec.isEmpty()
Tests whether this BitVector has any set bits.
Parameters
- bitVec -> BitVector, instance of BitVector class.
Returns
Returns Boolean true if the bit vector has no set bits, false otherwise.
Example
bitVec.isEmpty();License
See LICENSE file.