CRC parameters
CRC initial value (Init)
See how the starting register value changes CRC results and why many standards use all zeros or all ones.
5 min read
The register before processing begins
Init is the value loaded into the CRC register before the first input bit or byte is processed. It is masked to the selected CRC width.
Common initial values
Many models use zero, while others use a register filled with ones. For CRC-16 that commonly means 0x0000 or 0xFFFF; for CRC-32 it commonly means 0x00000000 or 0xFFFFFFFF.
Why Init matters
Changing Init changes the result even when every other parameter is identical. It can also make leading zero bytes affect the calculation differently.
Try it in the calculator
Change CRC parameters and compare standard algorithm results using the browser-based calculator.