1.0.1 • Published 4 years ago

@krigga/bytebit v1.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
4 years ago

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.