CRC32c
用于计算 CRC-32c 校验和的标准库模块。
CRC32c.crc32c
— 函数crc32c(data, crc::UInt32=0x00000000)
计算给定 data
的 CRC-32c 校验和,data
可以是 Array{UInt8}
、其连续子数组或 String
。可选地,可以传递一个起始 crc
整数与校验和混合。crc
参数可用于计算分块数据的校验和:执行 crc32c(data2, crc32c(data1))
等效于 [data1; data2]
的校验和。(从技术上讲,计算的是小端校验和。)
还有一种方法 crc32c(io, nb, crc)
用于从流 io
中校验和 nb
字节,或 crc32c(io, crc)
用于校验和所有剩余字节。因此,您可以执行 open(crc32c, filename)
来校验和整个文件,或 crc32c(seekstart(buf))
来校验和 IOBuffer
而不调用 take!
.
对于 String
,请注意,结果是特定于 UTF-8 编码的(不同的 Unicode 编码将获得不同的校验和)。要校验和其他位类型的 a::Array
,可以执行 crc32c(reinterpret(UInt8,a))
,但请注意,结果可能与字节序相关。
CRC32c.crc32c
— 方法crc32c(io::IO, [nb::Integer,] crc::UInt32=0x00000000)
从 io
中读取最多 nb
字节,并返回 CRC-32c 校验和,可以选择与起始 crc
整数混合。如果未提供 nb
,则将读取 io
,直到流结束。