1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
x3 x6 x6 x774 x774 x6918 x6918 x774 x774 x6 x3   x3 x230 x230 x7902 x7902 x230 x230 |
const CRC = function (): Uint32Array { const array = new Uint32Array(256); for (let i = 0; i < 256; ++i) { let x = i; for (let j = 0; j < 8; ++j) { x = (x & 1) ? 0xEDB88320 ^ (x >>> 1) : x >>> 1; } array[i] = x; } return array; }(); export function calcCRC(buffer: Uint8Array | Uint8ClampedArray): number { let crc = 0xFFFFFFFF; for (let i = 0; i < buffer.length; ++i) { crc = CRC[(crc ^ buffer[i]) & 0xFF] ^ (crc >>> 8); } return ~crc >>> 0; } |