CRC32c

CRC32c.crc32c ── 関数

crc32c(data, crc::UInt32=0x00000000)

与えられたデータの CRC32c チェックサムを計算します。data に指定できるのは Array{UInt8}Array{UInt8} の連続部分配列・String です。省略可能引数として、チェックサムの初期値として使われる整数 crc も指定できます。crc パラメータは複数の部分に分割されたデータのチェックサムを計算するのにも利用でき、例えば crc32c(data2, crc32c(data1))[data1; data2] のチェックサムを計算するのと等価です (正確にはリトルエンディアンのチェックサムが計算されます)。

他にもストリーム io の先頭 nb バイトのチェックサムを計算するメソッド crc32c(io, nb, crc) や、ストリームに残っている全てのバイト列のチェックサムを計算するメソッド crc32c(io, nb) があります。そのため open(crc32c, filename) とすればファイル全体のチェックサムが計算でき、crc32c(seekstart(buf)) とすれば take! を使わずに IOBuffer 全体のチェックサムが計算できます。

String に対しては UTF-8 エンコーディングに特有のチェックサムが計算されます (異なる Unicode エンコーディングでは結果が異なります)。その他のビット型の配列 a::Array のチェックサムを計算するときは crc32c(reinterpret(UInt8,a)) を使ってください。ただし、こうすると結果がエンディアンに依存する可能性があります。

CRC32c.crc32c ── メソッド

crc32c(io::IO, [nb::Integer,] crc::UInt32=0x00000000)

io から最大で nb バイトを読み、その CRC32c チェックサムを計算します。省略可能な整数引数 crc を指定すると、チェックサム計算の初期値がその値になります。nb が指定されないと、io が終わるまでデータが読まれます。

広告