go 高8位crc16校验码 add16

package main

import (
    "fmt"
)

func CRC(data []byte) string {
    var crc uint16
    length := len(data)

    for i := 0; i < length; i++ {
        crc += ((crc >> 8) & 0xff00) ^ uint16(data[i])
    }
    return fmt.Sprintf("%04X", crc)
}

func main() {

    //AA F3 0401 5E 01 60

    m_data := []byte{0xAA, 0xF3, 0x04, 0x01, 0x5E, 0x01, 0x60}
    // m_data := []byte{0xAA, 0xF1, 0x02, 0x02, 0x02}
    fmt.Printf("%s", CRC(m_data))
}

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容