??? 08/13/07 05:27 Read: times |
#143143 - and what Responding to: ???'s previous message |
Russ Cooper said:
Too bad it's necessary to start over from the very beginning for every different polynomial. (c: And what. How many are actually in use for CRC-16? I believe if I make the same for the right-shifting variant, I'll cover 90% of the true CRC16s (excluding those which their authors like to call "CRC" but only to sound sophisticated, and is in fact a plain checksum or similar). Russ said:
Have you run into articles like this one that raise some doubt about how a correct implementation of CCITT CRC-16 is really supposed to work? It points out that many websites (including the online CRC calculator that you have mentioned) give 29B1h as the CRC for the test string "123456789". However, the author of the site believes for one reason or another that the correct result is actually E5CCh. Sure. This is just the example of poor definition of things I was talking about in the previous thread (for example, you'll obtain this result from the online calculator if you tick the "indirect algorithm"). And this is why my methodology is rather empirical and as a definition requirement I don't want example of the algo - which is pretty much the same all the time - but also example inputs and outputs. Russ said:
I don't suppose this would matter too much if your use of the algorithm was limited only to your own programs. Of course it would matter a lot if you were exchanging data with somebody else's program that calculated the CRCs differently. This is exactly what I'm talking about... Although, if I think more, it should also cover cases when the checksum calculation has a flaw (and the "counterpart" you are trying to create needs to have implemented the same flaw of course). Russ, I seem to recall such a case... ;-) JW |