What is CRC (cyclic redundancy check)?
An error-detection method that treats the data bits as a polynomial, appends the remainder of dividing it by a generator polynomial, and lets the receiver repeat the calculation to detect errors. It is widely used in Ethernet, PCI Express, USB and file formats.
Japanese name: CRC(巡回冗長検査)
CRC (cyclic redundancy check) appears in 4 practice questions across 2 topics, including Logic circuits, I/O Interfaces & Buses.
Field: I/O Interfaces & Buses
Errors it detects and where it is used
A w-bit CRC detects every burst error of length w or less, and the chance of missing other random errors is roughly 2⁻ʷ. It only detects errors, however; it cannot correct them, so systems recover by retransmission. CRCs are used in the Ethernet FCS (CRC-32), PCI Express packets, USB, CAN, storage commands and file formats such as ZIP and PNG, and in hardware they can be computed with a linear feedback shift register of flip-flops and XOR gates.
FAQ
How does a CRC differ from a checksum?
A checksum uses a simple operation such as adding bytes and easily misses reordered data or errors that cancel out, whereas a CRC is based on polynomial division, distinguishes bit positions and reliably catches burst errors.
Can a CRC correct errors?
In general, no. A CRC detects whether an error occurred but not which bit is wrong, so memories that need correction use an ECC such as a Hamming code.