用Go语言写一个对byte进行CRC16校验的方法
时间: 2024-01-03 15:05:33 浏览: 65
C#写的CRC16校验算法
4星 · 用户满意度95%
好的,这里是一个用Go语言实现的对byte进行CRC16校验的方法:
```go
func crc16(data []byte) uint16 {
const poly = 0x1021
var crc uint16
for _, b := range data {
crc ^= uint16(b) << 8
for i := 0; i < 8; i++ {
if crc&0x8000 != 0 {
crc = (crc << 1) ^ poly
} else {
crc <<= 1
}
}
}
return crc
}
```
这个方法使用了CRC-CCITT(XModem)算法,它是一种常用的CRC校验算法,适合对小数据块进行校验。在这个方法中,我们首先定义了一个常量`poly`,它是CRC多项式的值。然后我们对输入的每个字节进行处理,计算CRC值。最后我们返回计算出来的CRC值。
阅读全文