The highest bit of a polynomial is assumed to be 1, and is not included in the value used in the formula.
It's presence in the polynomial indicates the length of the final CRC result.
With x^8 + x^5 + x^4 + 1 ...
The x^8 indicates that it is an 8-bit CRC, and it's bit position is not used.
From there, you just stick the bits in a value to be used in the formula.
Code:
x^8 + x^5 + x^4 + 1
7 6 5 4 3 2 1 0
------------------------
0 0 1 1 0 0 0 1
-------------------------
$ 3 1
The polynomial for plain CRC16 is x^16 + x^15 + x^2 + x^0
So it's a 16-bit CRC, the x^16 is not used, and the poly value is $8005.
Note that + x^0 is the same as + 1.
The calculator you pointed to forces you to put the highest bit in the constant so it knows the length of the CRC.
Otherwise, it's the same value ... $31.
HTH
Bookmarks