谁能把crc校验一步步算出来?计算CRC码的步骤为:(1).预置16位寄存器为FFFFH。称此寄存器为CRC寄存器;(2).把第一个8位数据与CRC寄存器的低位相异或,把结果放于CRC寄存器;(3).把寄存器的内
计算CRC码的步骤为:
(1).预置16位寄存器为FFFFH。称此寄存器为CRC寄存器;
(2).把第一个8位数据与CRC寄存器的低位相异或,把结果放于CRC寄存器;
(3).把寄存器的内容右移一位(朝低位),用0填补最高位,检查最低位;
(4).如果最低位为0:重复第3步(再次移位)如果最低位为1:CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或;
(5).重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;
(6).重复步骤2到步骤5,进行下一个8位数据的处理;
(7).最后得到的CRC寄存器即为CRC码。(CRC码 = CRC_L +CRC_H)
发送01 00 03 01 00 03的校验码应该是54 0B 可是我按照上面那个算法怎么也算不出来?求高人出手。要详细运算过程。
应该是1 3 0 1 0 3 的校验码是540b
从(1)看,你已经考虑了算法要求的初值问题,从(3)看,你已经考虑了数据的排列问题,使用的是低位先传输低位先校验的方式,那还有两个问题:
计算步骤,从你的讲述上,你是先判断最低位为1,做异或,再移位,这个步骤不符合要求。应该是先判断最低位为1,先移位,再做异或;如果最低位为0,则移位,但不做异或。具体的原理一下说不清楚,我借花献佛,推荐你搜一下一个文档:“我学习CRC32、CRC16、CRC 原理和算法的总结(与WINRAR 结果一致)”,其中“三 直接计算法”可以解决你的问题,但建议你把之前的一二都看了,我前段时间做以太网的CRC32校验的时候被整的死去活来,最后发现这个文档讲得很有条理,虽然应用不同,但原理相同,感谢作者。
确定一下你最后的CRC码是否需要取反,因为很多传输用的算法,如果要对CRC校验码后的0的个数敏感,是需要对其CRC码取反的,你做完1后,如果结果还不对,可以试着取反试试。最后再确定一下算法要求的CRC码值的排放顺序,这个也会影响你最终结果的表现形式。
差点被你绕进去了,你的计算是使用的检查最低位,向右移的方式,那你的生成多项式是不是也已经相应的进行了翻转?将高低位按序反着放了?建议你还是找到你要做的这个算法的规范文本,确认一下规则。
已知直线y=x+3的图像与x.y轴交于A.B两点,直线l经过原点,与线段AB交于C,把三角形aob 2020-05-16 …
虚拟存储器是把哪两者有机地结合起来使用的?A.内存与外存B.内存与高速缓存C.外存与高速缓存D.内 2020-05-23 …
虚拟存储器是把__()__有机地结合起来使用的。A.内存与外存B.内存与高速缓存C.外存与高速缓存D 2020-05-26 …
银行客户把自己的余钱存入淘宝网的“余额宝”里,便能得到高于银行存款利息的收入,引起了银行存款大转移 2020-06-11 …
生物好点的进来下下列哪组糖类物质能分别于①②③对应(C)①存在于RNA中而不存在于DNA中的糖类② 2020-06-14 …
有A、B、C、D四个小朋友到银行一共存了152元钱,有趣的是:A存的钱数加上5等于B存的钱数减去5 2020-07-18 …
谁能把crc校验一步步算出来?计算CRC码的步骤为:(1).预置16位寄存器为FFFFH。称此寄存 2020-07-23 …
下列叙述中错误的是A.把数据从内存传输到硬盘的操作称为写盘B.WINDOWS属于应用软件C.把高级语 2020-11-23 …
96.启动Windows,最确切的说法是。(A)给计算机接通电源(B)把Windows系统装入内存并 2020-11-28 …
各家商业银行都把“存款第一,效益第一”作为立行的根本宗旨,根本原因在于A.商业银行以经营存款放款为主 2020-12-31 …