CRC发生器

crcmod的Python项目详细描述


这个包中的软件是一个python模块,用于生成 计算循环冗余校验(crc)。此包中没有尝试 解释CRC的工作原理。网络上有很多资源 对算法给出一个很好的解释。只需在谷歌上搜索“crc “计算”和浏览,直到你找到你需要的。另一个资源可以是 在Press等人的《C中的数字食谱》一书的第20章中发现。

此包允许使用任何8、16、24、32或64位CRC。你可以 为选定的多项式或 提供与md5sha模块相同接口的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,它包含 测试crcmodcrcmod.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 文件以获取详细信息。

贡献者

克雷格·麦奎因

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是否存在这样一种场景:Java7的Hashmap实现优于Java8的实现   java如何打印这些完整的数组?   java BuildException:未能执行aapt   java如何使用类。未知类型的集合返回的cast()   java准备语句返回错误的值   webview 安卓中的java显示身份验证对话框   java如何重命名列名JPA Hibernate   java查询从特定用户和特定时间段的Oracle表(通过比较原始表和备份表)中选择修改的行   java Youtube视频仅在三星S6设备上加载时自动暂停   未调用java RecyclerView getItemViewType   使用JSch setCommand执行带有源选项的java Shell ping命令时失败   java Hibernate:无法删除|删除分离的实例   Java Spring@MappedSuperclass字段作为子类中的@Id字段   java Android:确定单击了哪个按钮,因为该按钮未在xml中定义   如何计算java阵列内存使用率   使用Java查找按字母顺序排列的第一个字符串   javascript注销功能刷新页面,但页面仍已登录   当接口作为参数提供时,java依赖项注入不起作用   java中带原语的字符串扭曲