ByteBit
Efficient representation of byte composed of bits.
Install
Install via npm:
npm install --save @krigga/bytebit
Usage
Note
Most operations will work in little-endian-like mode, meaning that bit 0 (0th bit) is the least significant one.
The exceptions are:
- the constructor when the 2nd argument is set to falsy
- string conversion
Example
const ByteBit = require('@krigga/bytebit');
const myByte = new ByteBit(200);
console.log(myByte.toString());
console.log([...myByte]);
console.log(myByte[1], myByte[3]);
myByte[1] = 0;
myByte[2] = 1;
console.log(myByte.toString());
console.log(0 + myByte);
Create byte
From unsigned byte integer
const myByte = new ByteBit(200);
console.log(myByte.toString());
From bits array
const myByte = new ByteBit([ 1, 1, 0, 0, 1, 0, 0, 0 ], false);
console.log(myByte.toString());
You can also pass in Booleans:
const myByte = new ByteBit([ true, true, false, false, true, false, false, false ], false);
console.log(myByte.toString());
Iterator
const myByte = new ByteBit(200);
console.log([...myByte]);
Array-like access
const myByte = new ByteBit(200);
console.log(myByte[1], myByte[7]);
myByte[7] = 0;
myByte[2] = 1;
console.log(myByte.toString());
Treat as a number
const myByte = new ByteBit(200);
console.log(myByte == 200);
console.log(myByte + 0);
console.log(new Number(myByte));
String with bits
const myByte = new ByteBit(200);
console.log(new String(myByte));
console.log(myByte.toString());
Methods
For those who want to use function calls.
assign(bits, offset = 0)
Assigns array of bits to an instance.
Example: byte.assign([0, 1], 1)
means "set bit 1 = 0 and bit 2 = 1".
getBit(offset)
Returns a bit from requested offset in range from 0 to 7.
setBit(offset, bit)
Sets a bit on requested offset in range from 0 to 7.
bit
must be a Number
(0
or 1
) or a Boolean
.
getByte()
Returns the byte as an unsigned byte integer.
getChar()
Returns ASCII character from the byte.