Link to home
Start Free TrialLog in
Avatar of JSMCM
JSMCM

asked on

CRC Polynomials

Hello

I am trying to figure out how CRC poly's work.

I know that in the 16 Bit CRC we are using at the moment, the poly is x^16 + X^12 + X^5 + X^0 = 0x1021

But what I don't know is how to actually use this poly to calculate the CRC on a number, eg 0x11

I have seen that alot of people do this with a table lookup. Is that really necesarry if you have the poly. Why can't you just calculate without a table?

Thanks, John
ASKER CERTIFIED SOLUTION
Avatar of larryco
larryco

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of msa2003
msa2003

I have a sample Delphi program which codes and decodes data with CRC using polynomials. It has user-friendly interface and was originally developed to show in details the encoding end decoding algorithms and code error-correction and error-identification opportunities. You may use this program with pre-defined set of polynomials, or enter costom values.

Now I didn't placed a link to this program because it has only Russian language interface. If you need this program I'll translate it to English.

It doesn't use tables.
If you are looking for info on CRCs and how to implement them and how the poly is used to calculate a CRC then go to:  http://www.cs.waikato.ac.nz/~312/crc.txt

It is the "Painless Guide TO CRC ERROR DETECTION ALGORITHMS," and it has a good bit of info about how the poly is used.
I asked a similar question a while back here:
https://www.experts-exchange.com/questions/20146760/200-points-for-help-with-CRC.html
It may help explain some stuff.
Paul
Avatar of JSMCM

ASKER

Thanks, I'll have a look at these suggestions, but it may take a while to get back to you guys.

John