crc校验之python

#代码报错
#Python笔记-CRC循环冗余校验的编程实现


#File c:\users\lenovo\crc1.py:19 in TurnBin
    if len(string)==int(lis[i][1]): #满足位数与变量的数字相同时

IndexError: string index out of range


之前用的时候好用

4、要发送的数据为1101011011。采用CRC的生成多项式是P(X)=X4+X+1。试求应添加在数据后的余数。数据在传输过程中最后一个1变成0,问接收端能否发现?

写这个的时候就不好用了

根据你提供的信息,问题出现在 TurnBin 函数中的第 19 行,提示是 IndexError: string index out of range,说明在字符串取值时越界了。

根据 TurnBin 函数的代码,这里涉及到了列表 lis 的使用,这个列表应该是用来存储生成多项式的二进制表示以及位数的。从错误信息来看,lis[i] 似乎越界了,导致程序出错。

为了解决这个问题,你需要检查 lis 列表的内容是否正确,特别是列表的长度是否与代码中的预期长度相同。另外,还要检查传入 TurnBin 函数的参数 x 是否正确,是否是一个十进制的整数。如果 x 不是一个整数,或者无法转换为二进制字符串,那么在执行 string = bin(x)[2:] 时也可能会出现错误。

如果你无法找到问题的原因,可以将完整的代码和输入数据提供给我,我可以帮你更好地诊断问题。