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
直到串流結束。