For principle, applications of CRC, please visit The Ultimate Guide to Cyclic Redundancy Check.
Custom Parameters
Calculated CRC
Result appears below
A Cyclic Redundancy Check (CRC) is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data. It works by treating the message as a large binary number and dividing it by a fixed binary number, the "polynomial". The remainder of this division is the CRC checksum.
Visualizing the Process
The animation below simplifies the process of binary long division, which is the core of CRC calculation. You can step through the process to see how the remainder (the CRC value) is generated. This is a conceptual model; actual implementations are highly optimized in hardware and software.
Explore common CRC algorithms. Click on any row to load its parameters into the calculator.
| Name | Width | Polynomial | Initial Value | Reflect In | Reflect Out | Final XOR |
|---|
How to Use the CRC Calculator Correctly
The calculator works on bytes, so first decide how your source data should be converted into bytes. String (UTF-8) encodes the characters you type. Hexadecimal accepts the byte sequence directly, which is usually safer when checking a packet capture, memory dump, or serial frame.
- Polynomial selects the generator polynomial.
- Initial Value is loaded into the CRC register before the first byte.
- Reflect In / Reflect Out controls bit reflection for the input bytes and final register.
- Final XOR is applied after the last byte is processed.
A polynomial alone does not identify a CRC variant. The initial value, reflection settings and final XOR must also match the protocol specification.
Worked Input and Output Examples
Enter 123456789 as String (UTF-8). With CRC-16/MODBUS, the expected result is 0x4B37; with CRC-32, it is 0xCBF43926.
The hexadecimal input 31 32 33 34 35 36 37 38 39 represents the same nine ASCII bytes and should produce the same checksum. This is a useful way to confirm that text encoding is not changing the payload.
How to Interpret a CRC Result
A matching checksum shows that the payload bytes and CRC parameters agree with the reference implementation. A mismatch does not automatically mean the calculator is wrong. Check, in order:
- Whether spaces, line endings, separators or a trailing null byte are included.
- Whether the input is text, raw hexadecimal bytes or a displayed numeric value.
- The initial value, input/output reflection and final XOR.
- Whether the transmitted CRC bytes are shown little-endian or big-endian.
Technical References
Parameter definitions and check values can be verified against the AUTOSAR CRC Routines specification, the USB 2.0 specification, and the traceable CRC RevEng catalogue.
CRC detects accidental transmission or storage errors; it does not prove authenticity and is not a replacement for a cryptographic hash or message authentication code.







