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] 的校驗和。(技術上來說,計算的是 little-endian 校驗和。)

還有一個方法 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 直到串流結束。