crc16 多项式为8005 请问0x7f的CRC校验码是多少?

crc16 多项式为8005 请问0x7f的CRC校验码是多少? CRC原理讲的是右移,可我看的程序都是左移 这是为啥呢?我自己试过 好像结果不一样网上的计算器每个的结果都不同,各种坑

多项式为8005,右移,初值0000,出值0000,则0x7f的CRC校验码是000D。

代码作为数据在向计算机或其它设备进行输入时,容易产生输入错误,为了减少输入错误,编码专家发明了各种校验检错方法,并依据这些方法设置了校验码。
凡设有校验码的代码,是由本体码与校验码两部分组成(如组织机构代码),本体码是表示编码对象的号码,校验码则是附加在本体码后边,用来校验本体码在输入过程中准确性的号码。每一个本体码只能有一个校验码,校验码通过规定的数学关系得到。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-02
多项式为8005,右移,初值0000,出值0000,则0x7f的CRC校验码是000D追问

好像是8F78H ?

追答

多项式8005,左移,初值0000,出值0000,0x7f的CRC16校验码0181。
多项式8005,右移,初值0000,出值0000,0x7f的CRC16校验码000D。
多项式8005,左移,初值FFFF,出值0000,0x7f的CRC16校验码037C。
多项式8005,右移,初值FFFF,出值0000,0x7f的CRC16校验码FA80。

本回答被提问者采纳
第2个回答  2014-01-09
matlab先产生一个生成多项式,gen=crc.generator('Polynomial','0x8005','Initialstate','0x0000'),然后将0x7f变成二进制的数据流msg=de2bi(hex2dec('7f'),8,'left-msb')',最后crc=generate(gen, msg)’,就能得到结果了,你可以试试
主要是要注意生成多项式的初始值和其他的状态参数,要不即使同一个生成多项式算出来的结果也是不一样的

crc16 多项式为8005 请问0x7f的CRC校验码是多少?
多项式为8005,右移,初值0000,出值0000,则0x7f的CRC校验码是000D。代码作为数据在向计算机或其它设备进行输入时,容易产生输入错误,为了减少输入错误,编码专家发明了各种校验检错方法,并依据这些方法设置了校验码。凡设有校验码的代码,是由本体码与校验码两部分组成(如组织机构代码),本体码是表示编...

如何对数据块进行crc16校验
CRC(16位)多项式为 X16+X15+X2+1,其对应校验二进制位列为1 1000 0000 0000 0101。7E 00 05 60 31 32 33 计算CRC16校验结果是:5B3E。

计算CRC校验码
详情请查看视频回答

crc16校验码怎么算
coins[3]+coins[4]+coins[5]) { if(coins[0]+coins[3] == coins[1]+coins[4])compare(coins, 5, 2, 0);else if(coins[0]+coins[3] > coins[1]+coins[4])compare(coins, 3, 1, 0);if(coins[0]+coins[3] < coins[1]+coins[4])compare(coins, 4, 0, 1);...

crc16校验代码中 多项式码明明是8005 为什么要用A001来异或,还有CRC16...
0xA001=1010 0000 0000 0001B 对比两个二进制高低位正好是完全相反的,CRC校验分为正向校验与反向校验。正向校验高位在左,反向校验低位在左,比如正向CRC校验的数据为0xAF5D=1010 1111 0101 1101B与0x8005异或时应该是0xAF5D^0x8005,而要使用0xA001与数据进行校验也应该使0xAF5D高低位换顺序为0xBA...

crc16校验码问题
推荐你一篇文章《40位以内任意长度的CRC计算及校验的实现 》,看过之后应该有所领会。

crc16校验的c语言程序
在用C语言编写CRC校验码的实现程序时我们应该注意,生成多项式 对应的十六进制数为0x18005,由于CRC寄存器左移过程中,移出的最高位为1时与 相异或,所以与16bit的CRC寄存器对应的生成多项式的十六进制数可用0x8005表示。下面给出并行处理8bit数据流的C源程序:unsigned short crc_dsp(unsigned short reg,...

CRC校验值是如何计算出来的?
对于CRC-8,以多项式x^8+x^2+x+1(16进制表示为0x07)为例,我们可以通过上述的算法实现其校验值的计算。每种实现方式各有特点,开发者可根据实际需求和资源限制选择合适的计算方法。总结而言,CRC校验值的计算基于多项式除法和GF(2)域的运算规则,生成多项式决定了计算过程。通过理解CRC的计算原理和...

实用CRC校验
在Mobus报文传输中,16位的CRC校验码是确保数据准确性和完整性的关键环节。CRC校验的实现方式依赖于特定的多项式,以Modbus的CRC-16-IBM为例,其多项式用二进制表示为11000000000000101(16进制:0x8005或0xA001,后者是输入数据翻转后的值)。校验过程涉及初始值(通常为0)、结果异或值、数据位翻转以及最终...

求modbus 通讯 crc校验代码
unsigned short CRC16(puchMsg,usDataLen)unsigned char *puchMsg; \/* 要进行CRC校验的消息 *\/ unsigned short usDataLen; \/* 消息中字节数 *\/ { unsigned char uchCRCHi=0xFF; \/* 高CRC字节初始化 *\/ unsigned char uchCRCLo=0xFF; \/* 低CRC 字节初始化 *\/ unsig...

相似回答