foxts
Version:
Opinionated collection of common TypeScript utils by @SukkaW
31 lines (29 loc) • 1.79 kB
TypeScript
declare function bitCount(n: number): number;
declare const getBit: (n: number, mask: number) => boolean;
declare const missingBit: (n: number, mask: number) => boolean;
declare const setBit: (n: number, mask: number) => number;
declare const deleteBit: (n: number, mask: number) => number;
/** Packs two 16-bit integers (0~65535) into one 32-bit integer */
declare const packTwoBits: (a: number, b: number) => number;
declare const unpackTwoBitsFirst: (value: number) => number;
declare const unpackTwoBitsSecond: (value: number) => number;
/**
* Unpacks two 16-bit integers (0~65535) from one 32-bit integer
*
* @param value - The 32-bit integer to unpack
* @param arr - An optional array to store the unpacked values, useful if you are trying to re-use arrays
*/
declare function unpackTwoBits(value: number, arr?: [a: number, b: number]): [a: number, b: number];
/** Packs three 10-bit integers (0~1023) into one 32-bit integer */
declare const packThreeBits: (a: number, b: number, c: number) => number;
declare const unpackThreeBitsFirst: (value: number) => number;
declare const unpackThreeBitsSecond: (value: number) => number;
declare const unpackThreeBitsThird: (value: number) => number;
/**
* Unpacks three 10-bit integers (0~1023) from one 32-bit integer
*
* @param value - The 32-bit integer to unpack
* @param arr - An optional array to store the unpacked values, useful if you are trying to re-use arrays
*/
declare function unpackThreeBits(value: number, arr?: [a: number, b: number, c: number]): [a: number, b: number, c: number];
export { bitCount, deleteBit, getBit, missingBit, packThreeBits, packTwoBits, setBit, unpackThreeBits, unpackThreeBitsFirst, unpackThreeBitsSecond, unpackThreeBitsThird, unpackTwoBits, unpackTwoBitsFirst, unpackTwoBitsSecond };