Документация Engee

CRC32c

Модуль стандартной библиотеки для вычисления контрольной суммы CRC-32c.

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

Вычисляет контрольную сумму CRC-32c для данных data, которыми могут быть массив Array{UInt8}, его непрерывный подмассив или String. При желании можно передать начальное целое число crc, которое должно комбинироваться с контрольной суммой. С помощью параметра crc можно вычислить контрольную сумму для данных, разделенных на части: результат вызова crc32c(data2, crc32c(data1)) эквивалентен контрольной сумме [data1; data2]. (Строго говоря, вычисляется контрольная сумма с прямым порядком байтов.)

Существует также метод crc32c(io, nb, crc) для вычисления контрольной суммы nb байтов из потока io и метод crc32c(io, crc) для вычисления контрольной суммы всех оставшихся байтов. Таким образом, можно выполнить вызов open(crc32c, filename) для вычисления контрольной суммы всего файла или crc32c(seekstart(buf)) для вычисления контрольной суммы IOBuffer, не вызывая take!.

Обратите внимание, что для String результат предоставляется для кодировки UTF-8 (для другой кодировки Юникода будет получена другая контрольная сумма). Для вычисления контрольной суммы a::Array другого битового типа можно выполнить вызов crc32c(reinterpret(UInt8,a)), но имейте в виду, что результат может зависеть от порядка байтов.

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

Считывает до nb байтов из io и возвращает контрольную сумму CRC-32c, при необходимости комбинируя ее с начальным целым числом crc. Если аргумент nb не предоставлен, io считывается до конца потока.