5

CRC16-CCITTのCRCテストベクトルを知っている人はいますか?

信頼できるCRC実装がないため、誰かの実装または自分の実装をテストする必要があります。(CRC32の場合、信頼できるリファレンス実装であるため、ゴールドスタンダードとしてPNGコードを使用します。)

このサイトのCRC計算機は便利に見えますが、どういうわけか正確さを検証する必要があります)


更新:上記のCRC計算機は便利に見えますが、ASCIIのみを使用し、16進数を入力する方法はありません。---ただし、16進入力を入力するのは非常に厄介です。(16進数のASCII12はとして入力できる%31%32ため、16進数の長い文字列をコピーして貼り付けることはできません。また、%文字にエスケープがないようです)

CRC16、CRC16-CCITT、およびCRC32のBoostテストベクトルに対して、16進入力を受け取るこのオンライン計算機を検証しました。

4

4 に答える 4

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

于 2009-12-16T22:14:20.350 に答える
1

Pythonのbinasciiパッケージにはしばらくの間CRC-16が含まれています。

使用binascii.crc_hqx(val, 0xFFFF)-前の例は...

$ python3
Python 3.7.3 (default, Dec 20 2019, 18:57:59) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import binascii
>>> tv = binascii.a2b_hex("12345670")
>>> hex(binascii.crc_hqx(tv, 0xFFFF))
'0xb1e4'
>>> tv = "123456789".encode("ascii")
>>> hex(binascii.crc_hqx(tv, 0xFFFF))
'0x29b1'
于 2020-03-13T09:32:36.527 に答える
0

CCITT-16 CRC(多項式がX16 + X12 + X5 + 1(ビッグエンディアンの16進表現で0x1021)、初期CRC値が。XOR0xFFFF値outがゼロである)の2つのテストベクトルは次のとおりです。

0x12345670 = 0xB1E4

0x5A261977 = 0x1AAD
于 2012-10-10T21:21:11.457 に答える
0

私はこれを見つけました:

http://introcs.cs.princeton.edu/java/51data/CRC16CCITT.java.html

"123456789".getBytes("ASCII"); -> 0x29b1
于 2013-09-09T14:30:49.747 に答える