Detection is recompute and compare. Changing one message bit changes the CRC produced by the same generator.

highlighted = computed this step

Why compare instead of verifying bad data

Verify mode rejects a bad codeword, so this lesson recomputes the CRC for the changed message. The mismatch with the received CRC is the detection signal.

received CRC=100\text{received CRC}=100

One message bit changes

The original message 11010011101100 changes to 11010011101101. The generator stays 1011.

110100111011001101001110110111010011101100\to11010011101101
Flipped message CRCGF(2) division rows are recomputed from the exact bits.Flipped message CRCdivide by 1011dividend1101001110110100011010011101101000xor 0101101100011101101000xor 1101100111011101101000xor 2101100010111101101000xor 3101100000001101101000skip 400000001101101000skip 500000001101101000skip 600000001101101000xor 7101100000000110101000xor 8101100000000011001000xor 9101100000000001111000xor 10101100000000000100000xor 11101100000000000001100skip 1200000000000001100xor 13101100000000000000111remainder111111

Recomputed CRC differs

The recomputed CRC is 111, not the received 100. The receiver detects the error by comparison.

111100111\ne100
Flipped message CRCGF(2) division rows are recomputed from the exact bits.Flipped message CRCdivide by 1011dividend1101001110110100011010011101101000xor 0101101100011101101000xor 1101100111011101101000xor 2101100010111101101000xor 3101100000001101101000skip 400000001101101000skip 500000001101101000skip 600000001101101000xor 7101100000000110101000xor 8101100000000011001000xor 9101100000000001111000xor 10101100000000000100000xor 11101100000000000001100skip 1200000000000001100xor 13101100000000000000111remainder111111

Summary

CRC catches every single-bit error and every burst error up to generator degree 3, plus many others; a corruption that is a multiple of the generator can slip through. It never false-alarms on a clean codeword. Polynomial arithmetic over the exact bits; timing/throughput is not modeled here.

flipped CRC=111\text{flipped CRC}=111
Flipped message CRCGF(2) division rows are recomputed from the exact bits.Flipped message CRCdivide by 1011dividend1101001110110100011010011101101000xor 0101101100011101101000xor 1101100111011101101000xor 2101100010111101101000xor 3101100000001101101000skip 400000001101101000skip 500000001101101000skip 600000001101101000xor 7101100000000110101000xor 8101100000000011001000xor 9101100000000001111000xor 10101100000000000100000xor 11101100000000000001100skip 1200000000000001100xor 13101100000000000000111remainder111111