@luncheon/truncated-binary-code
v1.0.2
Published
A truncated binary coding implementation.
Readme
@luncheon/truncated-binary-code
A truncated binary coding implementation.
import assert from "node:assert/strict";
import { decodeTruncatedBinary, encodeTruncatedBinary } from "@luncheon/truncated-binary-code";
assert.deepEqual(encodeTruncatedBinary(0, 10), [0, 0, 0]);
assert.deepEqual(encodeTruncatedBinary(1, 10), [0, 0, 1]);
assert.deepEqual(encodeTruncatedBinary(2, 10), [0, 1, 0]);
assert.deepEqual(encodeTruncatedBinary(3, 10), [0, 1, 1]);
assert.deepEqual(encodeTruncatedBinary(4, 10), [1, 0, 0]);
assert.deepEqual(encodeTruncatedBinary(5, 10), [1, 0, 1]);
assert.deepEqual(encodeTruncatedBinary(6, 10), [1, 1, 0, 0]);
assert.deepEqual(encodeTruncatedBinary(7, 10), [1, 1, 0, 1]);
assert.deepEqual(encodeTruncatedBinary(8, 10), [1, 1, 1, 0]);
assert.deepEqual(encodeTruncatedBinary(9, 10), [1, 1, 1, 1]);
assert.equal(decodeTruncatedBinary([1, 0, 1], 10), 5);License
See also
- @luncheon/golomb-code: A Golomb coding implementation.
- @luncheon/exponential-golomb-code: An exponential-Golomb coding implementation.
- @luncheon/fibonacci-code: A Fibonacci coding implementation.
- @luncheon/parity-step-code: A Universal Coding of Integers (UCI) inspired by Collatz conjecture.
- @luncheon/varint: A
BigInt-native varint codec supporting arbitrary chunk sizes and zigzag encoding.
