CRC发生器
crcmod的Python项目详细描述
这个包中的软件是一个python模块,用于生成 计算循环冗余校验(crc)。此包中没有尝试 解释CRC的工作原理。网络上有很多资源 对算法给出一个很好的解释。只需在谷歌上搜索“crc “计算”和浏览,直到你找到你需要的。另一个资源可以是 在Press等人的《C中的数字食谱》一书的第20章中发现。
此包允许使用任何8、16、24、32或64位CRC。你可以 为选定的多项式或 提供与md5和sha模块相同接口的CRC类 来自python标准库。Crc类实例也可以生成 C/C++源代码,可以在其他应用中使用。
指南
文档可以从文档字符串中获得。由你决定 应用程序中要使用的多项式。如果有人没有指定 要使用多项式,你需要做一些研究,以找到一个适合 你的申请。单元测试脚本test.py中提供了一些示例。 您还可以使用predefined模块选择一个标准 多项式。
如果您需要为另一种语言生成代码,我建议您将 Crc类并替换方法generateCode。使用generateCode作为 新版本的模型。
依赖关系
python版本
这个包有单独的代码来支持2.x和3.x python系列。
对于2.x版本的python,这些版本已经过测试:
- 2.4
- 2.5
- 2.6
- 2.7
它可能仍然适用于Python2.x的早期版本,但是 最近测试过。
对于3.x版本的python,这些版本已经过测试:
- 3.1
C栋扩建
要构建C扩展,必须为您的平台使用适当的编译器工具 安装。请参阅python文档以构建c扩展 细节。
安装
crcmod包使用distutils安装。 运行以下命令:
python setup.py install
如果扩展模块生成,则将安装它。否则, 安装将包括纯python版本。这将非常重要 比扩展模块慢,但允许使用包。
对于希望使用mingw32编译器的Windows用户,请运行以下命令:
python setup.py build --compiler=mingw32 install
对于Python3.x,安装过程是相同的,但是您需要使用3.x 翻译。
单元测试
crcmod包有一个模块crcmod.test,它包含 测试crcmod和crcmod.predefined。
首次安装crcmod时,应运行单元测试以确保 一切都安装好了。测试脚本执行许多测试 包括与使用类实现的直接方法的比较 整数mod 2上的多项式。
在python上运行单元测试>;=2.5:
python -m crcmod.test
或者,在test目录中运行:
python test_crcmod.py
代码生成
crcmod包能够生成可编译的c函数 用C或C++编译器。在test目录中,有一个examples.py 演示如何使用代码生成器的脚本。结果是 写入文件examples.c。已检查生成的代码以使 当然它是用gcc编译器编译的。
许可证
crcmod包是在mit许可下发布的。请参阅LICENSE 文件以获取详细信息。
贡献者
克雷格·麦奎因