#代码报错
#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:]
时也可能会出现错误。
如果你无法找到问题的原因,可以将完整的代码和输入数据提供给我,我可以帮你更好地诊断问题。