2009-12-16 61 views
5

有人知道CRC16-CCITT的一些CRC测试载体吗?用于CRC16(CCITT)的CRC测试载体

我没有可以信任的CRC实现,或者需要测试某人的实现或我自己的实现。 (对于CRC32,我用的是PNG code作为金标准,因为它是一个有信誉的参考实现。)

this site's CRC calculator看起来有用的,但我需要以某种方式验证正确性)


UPDATE:以上CRC计算器看起来很有用但它只需要ascii,无法输入十六进制。 ---虽然输入十六进制输入非常尴尬。 (十六进制ASCII 12可以输入%31%32,所以你不能只是复制+粘贴十六进制字节的长字符串;还有%性格似乎并不具有逃逸)

我已经验证this online calculator,这采用十六进制输入,针对CRC16,CRC16-CCITT和CRC32的Boost测试向量。

回答

2

Boost有一个很好的CRC实现可以测试。据我所知,可以将其配置为CRC16。 http://www.boost.org/doc/libs/1_41_0/libs/crc/index.html

似乎是如何设置它来模拟这个网页上CCITT一个例子:http://www.boost.org/doc/libs/1_41_0/libs/crc/crc.html

+1

+1并接受:不是你提到的原因,而是因为他们的测试代码有一个测试向量:http://www.boost.org/doc/libs/1_41_0/libs/crc/test /crc_test.cpp(参见std_data和std_crc_ccitt_result) – 2009-12-16 22:26:06

+0

伟大的,即使是一只盲母鸡,有时也会发现一粒玉米:)认真地说,提升图书馆往往会带来正面的惊喜。 – Laserallan 2009-12-16 22:31:15

+0

的实现可能很好,并且是正确的,但是像大多数抽象模板库一样,它看起来很不透明。 :-( – 2009-12-16 23:27:02

0

下面是CCITT-16 CRC两个测试向量(其多项式为X16 + X12 + X5 + 1(0x1021在大端十六进制表示);初始CRC值是0xFFFF XOR值超出为零)为:

0x12345670 = 0xB1E4 

0x5A261977 = 0x1AAD