bitwise.ts 566 B

1234567891011121314
  1. /** Packs two 16-bit integers into one 32-bit integer */
  2. export const pack = (a: number, b: number): number => {
  3. return (a << 16) | b;
  4. };
  5. /** Unpacks two 16-bit integers from one 32-bit integer */
  6. export const unpack = (value: number, arr: [a: number, b: number] = Array.from(new Array(2).keys()) as any): [a: number, b: number] => {
  7. arr[0] = (value >> 16) & 0xFFFF;
  8. arr[1] = value & 0xFFFF;
  9. return arr;
  10. };
  11. export const unpackFirst = (value: number): number => (value >> 16) & 0xFFFF;
  12. export const unpackSecond = (value: number): number => value & 0xFFFF;