CRC Calculator
Compute CRC-8, CRC-16 (CCITT/IBM), and CRC-32 checksums on any hex data. Shows the full polynomial division and final remainder.
How to Use
- Enter data as hex bytes (with or without 0x prefix).
- Pick the CRC variant: 8, 16-CCITT, 16-IBM, or 32.
- Result shows the CRC in hex with polynomial and parameters.
Parameters
CRC Theory
History of Cyclic Redundancy Check
W. Wesley Peterson published the foundational CRC paper, "Cyclic Codes for Error Detection", in 1961 while at the University of Hawaii. His key insight: treating the message and divisor as polynomials in GF(2) (binary arithmetic mod 2) produces a checksum with beautifully predictable error-detection properties — in particular, any burst error shorter than the CRC length is guaranteed to be caught, plus all single-bit errors, all odd-count errors, and a high fraction of random errors.
Hardware implementation is trivially cheap: a shift register with XOR gate taps at positions corresponding to the polynomial coefficients. Early telecom equipment implemented CRC in dedicated logic; modern systems use either table-lookup (fast on CPUs) or dedicated hardware (built into every Ethernet PHY). The Intel pclmulqdq instruction added to x86 in 2008 reduces even software CRC-32 to a handful of cycles.
Polynomial standardization settled a few common variants: CRC-8 (0x07) for short packets like I²C and 1-Wire; CRC-16-CCITT (0x1021) for XMODEM, X.25, and Bluetooth; CRC-16-IBM (0x8005) for USB and Modbus; CRC-32 (0x04C11DB7) for Ethernet, ZIP, PNG, and most storage checksums. Each polynomial was selected to maximize error detection over expected burst lengths while remaining hardware-efficient. New applications still typically pick one of these standard polynomials rather than design custom ones.
About This Calculator
Enter hex data (with or without 0x prefix, and optional whitespace) and pick a CRC variant. The tool performs bitwise polynomial division and returns the CRC in hex and decimal, along with the polynomial and input length.
Important detail: full CRC specifications include initial value, XOR-out, bit reflection (input and output), and polynomial — this calculator uses the standard defaults for each variant. If your target system uses non-standard parameters (some embedded protocols reflect differently or use unusual init values), verify against a known-good reference implementation for that system. All math runs client-side; no data leaves your browser.
Frequently Asked Questions
What is CRC?
Cyclic Redundancy Check — a checksum computed by polynomial division in GF(2). Catches burst errors much better than simple parity; very cheap to compute in hardware.
Which variant?
CRC-8: short packets (I2C, 1-wire). CRC-16-CCITT: XMODEM, Bluetooth. CRC-16-IBM: USB, Modbus. CRC-32: Ethernet, ZIP, PNG, SATA. Always match the spec you\'re targeting.
CRC vs hash?
CRC detects accidental errors; cryptographic hashes detect deliberate tampering. Don\'t use CRC for security — collisions are trivial to construct.
Common Use Cases
Serial Protocols
Modbus, CAN, 1-wire, UART packets — most include a CRC trailer.
File Format Integrity
ZIP, PNG, gzip append a CRC-32 to detect corruption.
Network Frames
Ethernet FCS is a CRC-32.
Last updated: