2022-02-11 11:59 PM
2022-02-12 06:03 AM
Think of a CRC as doing a LONG DIVISION in school, the polynomial is the divisor, and the data stream the dividend, the "Expected CRC" is the REMAINDER from the whole computation.
Also as a consequence of this, if you tack the "Expected CRC" on the END, and complete the computation the remainder with drop to ZERO, as it now "divides" perfectly.
EXPECTED_CRC = DATA % POLYNOMIAL
(DATA + EXPECTED_CRC) / POLYNOMIAL == 0, where data is unmodified / as expected
Math done in the Galois / FInite Field
https://en.wikipedia.org/wiki/Finite_field
2022-02-12 05:55 AM
The expected CRC value is the one transferred together with the data from the source. The calculated CRC value is the one calculated from the received data at the destination. Compare both at the destination to determine if the data has been corrupted during the transfer.
2022-02-12 06:03 AM
Think of a CRC as doing a LONG DIVISION in school, the polynomial is the divisor, and the data stream the dividend, the "Expected CRC" is the REMAINDER from the whole computation.
Also as a consequence of this, if you tack the "Expected CRC" on the END, and complete the computation the remainder with drop to ZERO, as it now "divides" perfectly.
EXPECTED_CRC = DATA % POLYNOMIAL
(DATA + EXPECTED_CRC) / POLYNOMIAL == 0, where data is unmodified / as expected
Math done in the Galois / FInite Field
https://en.wikipedia.org/wiki/Finite_field