首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何用c语言计算6位CRC?

如何用c语言计算6位CRC?
EN

Stack Overflow用户
提问于 2022-03-14 04:25:28
回答 1查看 223关注 0票数 0

我使用编码器,在这里我得到0到24位,其中0到5位是CRC位。有人能帮助我理解如何计算这6位的CRC码吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-15 05:14:17

如果没有一个例子,我无法确定,但这将按描述计算CRC,假设触发器的初始值为零。

代码语言:javascript
代码运行次数:0
运行
复制
unsigned crc6biss(uint32_t data, unsigned bits) {
    while (bits--)
        data = data & 0x80000000 ? (data << 1) ^ 0x0c000000 : data << 1;
    return ~data >> 26;
}

在这里,data是您的数据位,但非常重要的是,在32位字中移动,以便最重要的数据位是最重要的data位。bits是要处理的位数。所以数据位是位32-bits.31 of data。剩下的位是零。在返回值的最不重要的六位中返回6位CRC .

从您的文档中,bits将是18、19或21。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71462986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档