如何使用python从十六进制字节生成校验和

时间:2011-08-02 19:16:04

标签: python byte hex checksum crc

我正在使用python创建一个Hex文件,最后我需要添加一个校验和,它包含所有十六进制值的总和,以便校验和= Byte 0x000000 + Byte 0x000001 + ... + Byte 0x27DAFF(不包括这4个字节) 。然后将该校验和写入位于0x27DB00-0x27DB03的缓冲区作为无符号长整数。

关于如何快速完成这项工作的任何好主意,我正在运行python2.7。

作为我要做的事情的信息,我首先使用ctypes创建缓冲区,然后编写大量的十六进制缓冲区,然后从缓冲区创建一个cStringIO,并将此字符串对象写入file_obj,这恰好是一个django http响应(即将hex文件作为可下载文件返回)所以任何涉及缓冲区的智能东西都会受到赞赏! : - )

/ Jens

1 个答案:

答案 0 :(得分:4)

谢谢!!!

以下两种解决方案有效;

checksum = sum(map(ord, b))

checksum = sum(bytearray(b))

/ J