@krigga/bytebit
v1.0.1
Published
Efficient representation of byte composed of bits.
Downloads
9
Readme
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()); // 11001000
console.log([...myByte]); // [ 0, 0, 0, 1, 0, 0, 1, 1 ]
console.log(myByte[1], myByte[3]); // 1 0
myByte[1] = 0;
myByte[2] = 1;
console.log(myByte.toString()); // 11001100
console.log(0 + myByte); // 204
Create byte
From unsigned byte integer
const myByte = new ByteBit(200);
console.log(myByte.toString()); // 11001000
From bits array
const myByte = new ByteBit([ 1, 1, 0, 0, 1, 0, 0, 0 ], false); // 2nd parameter controls *endianness*
console.log(myByte.toString()); // 11001000
You can also pass in Booleans:
const myByte = new ByteBit([ true, true, false, false, true, false, false, false ], false);
console.log(myByte.toString()); // 11001000
Iterator
const myByte = new ByteBit(200);
console.log([...myByte]); // [ 0, 0, 0, 1, 0, 0, 1, 1 ]
Array-like access
const myByte = new ByteBit(200);
// get
console.log(myByte[1], myByte[7]); // 0 1
// set
myByte[7] = 0;
myByte[2] = 1;
console.log(myByte.toString()); // 01001100
Treat as a number
const myByte = new ByteBit(200);
console.log(myByte == 200); // true
console.log(myByte + 0); // 200
console.log(new Number(myByte)); // [Number: 200]
String with bits
const myByte = new ByteBit(200);
console.log(new String(myByte)); // [String: '11001000']
console.log(myByte.toString()); // '11001000'
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.