python 计算校验和
2024-08-20 04:48:47
校验和是经常使用的,这里简单的列了一个针对按字节计算累加和的代码片段。其实,这种累加和的计算,将字节翻译为无符号整数和带符号整数,结果是一样的。
使用python计算校验和时记住做截断就可以了。 这里仅仅是作为一个代码样本,权作标记,直接上代码
简单说明一下上面的脚本。如果是当作无符号整数来计算,则算法要简单很多,实际上都可以缩减为一句代码的事。如果是当作带符号整数来计算,则算法要复杂一下,要处理各种上溢出和下溢出的情形。正如文章开头指出的,不论使用哪种方式,最后的二进制表示都是一样的。所以一般情况下可以使用无符号整数来计算校验和,简单快速。
下面是验证使用的例子,
- data1=bytes(b'\x01\x7F\xFF')
- data2=bytes([random.randrange(0,256) for i in range(0, 10000)])
- assert(uchar_checksum(data1) == 127)
- assert(char_checksum(data1) == 127)
- assert((uchar_checksum(data2)&0xFF) == (char_checksum(data2)&0xFF))
- print('OK')
上面的算法也很容易推广到两个字节或者四个字节的校验和计算
over
最新文章
- PHP的变量
- 使用rem来开发你的移动端网站
- 阅读 图解HTTP ,读书笔记
- SharePoint 2013 点击";关注"; 报错
- TS
- Mac 终端常用命令备忘
- java.sql.SQLException: Access denied for user 'root'
- Ubuntu 14.04数据库服务器--mysql的安装和配置
- 几本不错的开源书(to be continued)
- SQL Server 数据岸问题
- poj 2001 Shortest Prefixes(字典树)
- DEBUG 调试
- 整合改造百度编译器到thinkphp上传图片到OSS
- 初探storm
- 求逆序对 ----归并排 &; 树状数组
- Substr与mb_substr区别
- 《Practical Vim》第五章:命令行模式
- CocosCreator 场景转换API
- Tomcat 7.0安装与配置
- Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
热门文章
- mybatis-generator eclipse插件 使用方法
- nodejs的express框架
- Linux audit安全审计工具
- [error]OpenCV Error: Assertion failed (ssize.width >; 0 &;&; ssize.height >; 0) in resize, file modules/imgproc/src/resize.cpp, line 3289
- 【letcode】5-LongestPalindromicSubstring
- pytorch实现autoencoder
- 直接复制浏览器Request headers中的进行copyheaders进行转换
- JSON JAVA 总结
- group_concat的使用以及乱码
- macbook air 获取root权限