Рабочее название библиотеки bit-us (Bit utilities and structures)
git clone https://github.com/shining-mind/cs-frontend.git
cd cs-frontend
npm i
cd src/coursework-01/bit-us
npm run build
npm pack
- Перейти в директорию проекта в который надо установить пакет
npm i /path/to/package/bit-us-0.1.0.tgz
UintLSBReader
- чтение бинарного потока в LSB порядке (реализация ReadBits из спецификации webp), подробнее
const vec = new BitVector(3)
vec.push(1) // 1
vec.push(1) // 2
vec.push(0) // 3
vec.set(2, 0)
vec.get(2) // 0
vec.set(2, 1)
vec.get(2) // 1
vec.set(0, 0)
vec.get(0) // 0
Array.from(vec) // [0, 1, 1]
Свойства
capacity
- аллоцированный размерlength
- количество бит в вектореbyteLength
- аллоцированные байты
Методы
constructor(capacity, wordSize)
- в конструктор передается исходный размер вектора и опциональный параметр размер битового словаpush(value): number
- добавить бит в векторpop(): Bit
set(n, value): void
- задать значение N-го битаget(n): Bit
- получить значение N-го битаtoBlob(): Blob
- преобразовать вектор вBlob
. Первые 4 байта выделены под длину вектора, остальные - под данные. Доступно только для вектора из 8 битных слов.
const userPermissions = new BitFieldFactory('read', 'write', 'edit');
const bob = userPermissions.create('read', 'write');
bob.has('read', 'write') // true
bob.has('read', 'write', 'edit') // false
bob.any('read', 'write', 'edit') // true
Класс: BitFieldFactory
Методы
create(...flags)
- создать битовую маску с данными флагамиgetFlagValue(flag)
- получить числовое значение для флага
Класс: BitField
Методы
has(...flags)
- проверить заданы ли все флаги в маскеcan(...flags)
- синонимhas
any(...flags)
- проверить есть ли какой-либо из флагов в маскеvalueOf()
- получить числовое значение примененных флагов
takeBitsMSB(int, n, k)
- взять первые N бит начиная со старшего бита из числа размером K битskipBitsMSB(int, n, k)
- пропустить первые N бит начиная со старшего бита из числа размером K битtakeBits(int, n)
- взять N бит начиная с младшего бита из числаskipBits(int, n, k)
- пропустить N бит начиная с младшего бита из числа размером K бит