任务
需要对某些数据进行循环几余码校验(CRC)以确定数据的完整无误,而且必须遵循ISO-3309 关于 CRC-64 校验的规定。
解决方案
Python 标准库并没有提供 CRC-64 的任何实现(但提供了CRC-32函数,即 zlib.crc32)所以我们需要自己来提供实现。幸而 Python 能够处理位操作(与、或、非、异或、移位等),就像C那样(实际上,它们的语法几乎完全相同),所以很容易根据CRC-64的参考实现写出如下的Python 函数:
#使用两个辅助表(为了速度我们用了一个函数),
#之后删除该函数,因为我们再也用不着它了:
CRCTableh = [0]*256
CRCTablel =