这条线 crc_temp=crc_val/256 圈 crc_temp 进入 float 。从那以后,从它衍生的其他变量变成了 float 还有,包括 crc_lo 。这最终成为按位XOR运算的问题 index = crc_lo ^ ord(w)
crc_temp=crc_val/256
crc_temp
float
crc_lo
index = crc_lo ^ ord(w)
修复方法是将结果转换为 int (因为你知道价值会是一个 int 无论如何)即 crc_temp=int(crc_val/256) 。更好的解决方案是使用整数除法,即 crc_temp=crc_val//256 。
int
crc_temp=int(crc_val/256)
crc_temp=crc_val//256
你没有提供 最小,完整和可验证的例子 你的问题,但我希望这将解决你的问题。
你的问题在这里:
运营商 / 在Python 2中意味着整数除法,但在Python 3中它意味着浮点除法。 Python 3中的等效整数除法运算符是 // 。
/
//