- ベストアンサー
VC6でCRC64・CRC128が出来るソースを探しています。
VC6でCRC64・CRC128が出来るソースを探しています。 CRC自体がよくわかっていないので、実際に動作させて理解しようとネットでソースを見つけようとしていますが、うまくコンパイルできるものが見つかりませんでした。 通常はCRCに1バイトをわたすもの?が多いのですが、できましたら文字列(長さは可変長)も扱える高速な関数を探しています。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
★『CRC32』の精度では駄目なのですか? ・下に 32 ビットですが CRC32 のコードを載せておきます。今後の参考にして下さい。 サンプル: DWORD GetCRC32( LPCTSTR lpString ) { DWORD dwCode = 0xFFFFFFFF; int no; while ( *lpString != '\0' ){ for ( dwCode ^= (((DWORD)*lpString) << (32 - 8)), no = 0 ; no < 8 ; no++ ){ if ( dwCode & 0x80000000 ){ dwCode = ((dwCode << 1) ^ 0x04C11DB7); } else{ dwCode <<= 1; } } dwCode = (~dwCode & 0xFFFFFFFF); } return( dwCode ); } 最後に: ・http://apollo.backplane.com/matt/crc64.html→『18.2 million dataset CRC-64 test & Program source』 ・http://www.efg2.com/Lab/Mathematics/CRC.htm→『efg's Mathematics Projects -- CRC Calculator』 ・上記のリンクを参考文献としてお使い下さい。 ・以上。おわり。
お礼
回答ありがとうございます。100から150バイトの文字列を正確に送りたいために、どうしても64ビットのCRCが必要です。 CRC32ならソースを見つけることができましたがCRC64はなかなか見つけることができませんでした。 本当にCRC64で大丈夫(実はCRC128もしくはCRC32)かはわかりませんが、探しています。 crc64(文字列)で CRC64の値が取得できる関数を探しています。 アセンブラなら高速なので、アセンブラでも構いません。 こういう関係の本も探しています。