Как сгенерировать контрольную сумму из шестнадцатеричного байта, используя python - PullRequest
0 голосов
/ 02 августа 2011

Я создаю Hex-файл, используя python, и в конце мне нужно добавить контрольную сумму, которая состоит из суммы всех шестнадцатеричных значений, чтобы контрольная сумма = Байт 0x000000 + Байт 0x000001 +… + Байт 0x27DAFF (не включая эти 4 байта),Затем эта контрольная сумма должна быть записана в буфер в позиции 0x27DB00-0x27DB03 как unsigned long.

Любые хорошие идеи о том, как сделать это быстро, я использую python2.7.

Как информация оЯ начинаю с создания буфера с использованием ctypes, затем записываю в буфер много и много шестнадцатеричных вещей, затем создаю cStringIO из буфера и записываю этот строковый объект в file_obj, который оказывается http-ответом django (т.е. возвращаетшестнадцатеричный файл как загружаемый файл), поэтому любые умные вещи, включающие буфер, будут оценены !!!: -)

/ Jens

1 Ответ

4 голосов
/ 03 августа 2011

Спасибо !!!

сработали следующие два решения;

checksum = sum(map(ord, b))

или

checksum = sum(bytearray(b))

/ J

...