Go 语言

Go 语言教程 Go 语言环境安装 Go 语言结构 Go 语言基础语法 Go 语言数据类型 Go 语言变量 Go 语言常量 Go 语言运算符 Go 语言条件语句 Go 语言 if 语句 Go 语言 if...else 语句 Go 语言 if 语句嵌套 Go 语言 switch 语句 Go 语言 select 语句 Go 语言循环语句 Go 语言 for 循环 Go 语言循环嵌套 Go 语言 break 语句 Go 语言 continue 语句 Go 语言 goto 语句 Go 语言函数 Go 语言函数值传递值 Go 语言函数引用传递值 Go 语言函数作为值 Go 语言函数闭包 Go 语言函数方法 Go 语言变量作用域 Go 语言数组 Go 语言多维数组 Go 语言向函数传递数组 Go 语言指针 Go 语言指针数组 Go 语言指向指针的指针 Go 语言指针作为函数参数 Go 语言结构体 Go 语言切片(Slice) Go 语言范围(Range) Go 语言Map(集合) Go 语言递归函数 Go 语言类型转换 Go 语言接口 Go 错误处理 Go 语言开发工具Go 语言标准库

Go 语言标准库


package crc32

import "hash/crc32"

crc32包实现了32位循环冗余校验(CRC-32)的校验和算法,参见:

http://en.wikipedia.org/wiki/Cyclic_redundancy_check

Go语言标准库 >>


  • Constants
  • Variables
  • type Table
  • func Checksum(data []byte, tab *Table) uint32
  • func ChecksumIEEE(data []byte) uint32
  • func Update(crc uint32, tab *Table, p []byte) uint32
  • func New(tab *Table) hash.Hash32
  • func NewIEEE() hash.Hash32
  • Constants

    const (
        // 最常用的CRC-32多项式;用于以太网、v.42、fddi、gzip、zip、png、mpeg-2……
        IEEE = 0xedb88320
        // 卡斯塔尼奥利多项式,用在iSCSI;有比IEEE更好的错误探测特性
        // http://dx.doi.org/10.1109/26.231911
        Castagnoli = 0x82f63b78
        // 库普曼多项式;错误探测特性也比IEEE好
        // http://dx.doi.org/10.1109/DSN.2002.1028931
        Koopman = 0xeb31d82e
    )

    预定义的多项式。

    const Size = 4

    CRC-32校验和的字节长度。

    Variables

    var IEEETable = MakeTable(IEEE)

    IEEETable是IEEE多项式对应的Table。

    type Table

    type Table [256]uint32

    长度256的uint32切片,代表一个用于高效运作的多项式。

    func MakeTable

    func MakeTable(poly uint32) *Table

    返回一个代表poly指定的多项式的Table。

    func Checksum

    func Checksum(data []byte, tab *Table) uint32

    返回数据data使用tab代表的多项式计算出的CRC-32校验和。

    func ChecksumIEEE

    func ChecksumIEEE(data []byte) uint32

    返回数据data使用IEEE多项式计算出的CRC-32校验和。

    func Update

    func Update(crc uint32, tab *Table, p []byte) uint32

    返回将切片p的数据采用tab表示的多项式添加到crc之后计算出的新校验和。

    func New

    func New(tab *Table) hash.Hash32

    创建一个使用tab代表的多项式计算CRC-32校验和的hash.Hash32接口。

    func NewIEEE

    func NewIEEE() hash.Hash32

    创建一个使用IEEE多项式计算CRC-32校验和的hash.Hash32接口。