| little-endian width/int --polynomial/int --initial-state/int= --xor-result/int= -> Crc | Construct a CRC that processes bits in little-endian-first order. |
|---|---|
| little-endian width/int --normal-polynomial/int --initial-state/int= --xor-result/int= -> Crc | Construct a CRC that processes bits in little-endian-first order. |
| little-endian width/int --powers/List --initial-state/int= --xor-result/int= -> Crc | Construct a CRC that processes bits in little-endian-first order. |
| big-endian width/int --polynomial/int --initial-state/int= --xor-result/int= -> Crc | Construct a CRC that processes bits in big-endian-first order. |
| big-endian width/int --powers/List --initial-state/int= --xor-result/int= -> Crc | Construct a CRC that processes bits in big-endian-first order. |
// The CRC-16 used in Xmodem.
crc := Crc.big-endian 16 --polynomial=0x1021
// The popular CRC-16 used in Xmodem.
crc := Crc.big-endian 16 --powers=[12, 5, 0]
// Equivalently:
crc := Crc.big-endian 16 --powers=[16, 12, 5, 0]
// The CRC-32 used in PNG.
crc := Crc.little-endian 32 --polynomial=0xEDB88320 --initial-state=0xffff_ffff --xor-result=0xffff_ffff
// The CRC-32 used in PNG.
crc := Crc.little-endian 32 --normal-polynomial=0x04C11DB7 --initial-state=0xffff_ffff --xor-result=0xffff_ffff
// The CRC-32 used in PNG.
// x³² + x²⁶ + x²³ + x²² + x¹⁶ + x¹² + x¹¹ + x¹⁰ + x⁸ + x⁷ + x⁵ + x⁴ + x² + x + 1.
crc := Crc.little-endian 32
--powers=[26, 23, 22, 16, 12, 11, 10, 8, 7, 5, 4, 2, 1, 0]
--initial-state=0xffff_ffff
--xor-result=0xffff_ffff
// Equivalently:
crc := Crc.little-endian 32
--powers=[32, 26, 23, 22, 16, 12, 11, 10, 8, 7, 5, 4, 2, 1, 0]
--initial-state=0xffff_ffff
--xor-result=0xffff_ffff