CRC32c
Стандартный модуль библиотеки для вычисления контрольной суммы CRC-32c.
CRC32c.crc32c
— Functioncrc32c(data, crc::UInt32=0x00000000)
Вычисляет контрольную сумму CRC-32c для заданных data
, которые могут быть Array{UInt8}
, смежным подмассивом или String
. При желании вы можете передать начальное целое число crc
, которое будет смешано с контрольной суммой. Параметр crc
можно использовать для вычисления контрольной суммы для данных, разделенных на части: выполнение crc32c(data2, crc32c(data1))
эквивалентно контрольной сумме [data1; data2]
. (Технически вычисляется контрольная сумма в формате little-endian.)
Существует также метод crc32c(io, nb, crc)
для вычисления контрольной суммы nb
байт из потока io
, или crc32c(io, crc)
для вычисления контрольной суммы всех оставшихся байт. Таким образом, вы можете сделать open(crc32c, filename)
для вычисления контрольной суммы целого файла или crc32c(seekstart(buf))
для вычисления контрольной суммы IOBuffer
без вызова take!
.
Для String
обратите внимание, что результат специфичен для кодировки UTF-8 (другая контрольная сумма будет получена из другой кодировки Unicode). Чтобы вычислить контрольную сумму для a::Array
другого типа битов, вы можете сделать crc32c(reinterpret(UInt8,a))
, но обратите внимание, что результат может зависеть от порядка байтов.
CRC32c.crc32c
— Methodcrc32c(io::IO, [nb::Integer,] crc::UInt32=0x00000000)
Читает до nb
байт из io
и возвращает контрольную сумму CRC-32c, опционально смешанную с начальным целым числом crc
. Если nb
не указан, то io
будет прочитан до конца потока.