CRC-8 直接计算法

部署运行你感兴趣的模型镜像

C语言

#include <stdio.h>

#include <stdint.h>

// CRC-8 计算函数

uint8_t crc8(const uint8_t *data, size_t length) {

    uint8_t crc = 0x00; // 初始 CRC 值

    uint8_t polynomial = 0x07; // CRC-8 多项式

    while (length--) {

        uint8_t byte = *data++; // 读取下一个字节

        crc ^= byte;

        for (uint8_t bit = 0; bit < 8; ++bit) {

            if ((crc & 0x80) != 0) { // 如果最高位为1

                crc = (crc << 1) ^ polynomial; // 左移一位,然后异或多项式

            } else {

                crc <<= 1; // 否则只左移一位

            }

        }

    }

    return crc;

}

int main() {

    uint8_t data[] = {0x01, 0x02, 0x03}; // 示例数据

    uint8_t result = crc8(data, sizeof(data));

    printf("CRC-8: 0x%02X\n", result);

    return 0;

}

Python语言

def crc8(data):

    # CRC-8的初始值

    crc = 0xFF

    # CRC-8的多项式,通常为0x07

    polynomial = 0x07

   

    # 遍历数据中的每个字节

    for byte in data:

        crc ^= byte

        # 对每个位进行移位和异或操作

        for _ in range(8):

            if crc & 0x80:

                crc = (crc << 1) ^ polynomial

            else:

                crc <<= 1

    return crc

# 测试代码

data = bytes([0x01, 0x02, 0x03, 0x04])

print("CRC-8校验和:", hex(crc8(data)))

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值