2016年5月14日

日記

CRC によるチェックサムCRC 値といった方がいいのか)の計算、和自体は java.util.zip.CRC32 で計算したのと同じ値が出るようになったけど、じゃあチェックサムのついたバイトストリームの検査しようかと思ったら何かうまくいかん。 とりあえずバイトストリームの最後に32個の0付けて計算しないといけないのを修正したが、これは日本語の Wikipedia の巡回冗長検査の計算例やコード例には書かれてないなぁ。 英語版の方では書かれてるが、日本語版のページは英語版をそのまま訳したような記事なのになぜ抜いたのか謎だ。 Java によるアルゴリズム事典』には説明に書かれてるけど、コードには考慮されてない。 自分で入力のバイト配列に入れろってことなのか。 Java 標準 APIjava.util.zip.CRC32 も同じ入力に対して計算結果が同じなので、こちらも自分で0を付けたバイト配列を入力に使わないといけないようで自分の理解が及んでなかっただけで大丈夫そう。 でも逆に検査の方にはそのまま使えなさそう。

0付けて計算した CRC 値をストリームの最後に付けたストリームの CRC 値を計算して0になればいいんじゃなかったっけ・・・ png ファイルはこのチェックサム使えるらしいので png ファイル用意してテストすればいいのかも知れないが、sbt さんテストリソース読んでくれなかった気がするのよねぇ。 嗚呼面倒だ。

Java によるアルゴリズム事典』のサンプルコード GetCRC.java で7行目の「>>」は「>>>」にしないとダメみたい。 間違い発見。

Javaによるアルゴリズム事典

Javaによるアルゴリズム事典


ツイート (ツイート数 22)