2011-08-02 23 views
0

私はPythonを使って16進ファイルを作成しています。最後にチェックサム= Byte 0x000000 + Byte 0x000001 + ... +すべての16進値の合計で構成されるチェックサムを追加する必要があります。バイト0x27DAFF(この4バイトを含まない)。このチェックサムは、0x27DB00-0x27DB03の位置のバッファにunsigned longとして書き込まれます。Pythonを使って16進バイトからチェックサムを生成する方法

これを高速に実行する方法については、私はpython2.7を実行しています。

私は、ctypesを使ってバッファを作成してから、バッファにたくさんの16進数を書き込んでから、バッファからcStringIOを作成し、この文字列オブジェクトをfile_objに書き込みますdjango httpレスポンス(すなわち、ダウンロード可能なファイルとして16進ファイルを返す)ので、バッファを含むスマートなものは高く評価されます! :-)

/jens

+1

"HEXファイル" とは、あなただけのバイナリファイルを意味するのですか? –

+1

'bytearray'に' sum() 'を試しましたか? – agf

+0

はい、バイナリファイルが作成されました。 – jenlu

答えて

3

ありがとう!!!

以下の2つのソリューションが機能しました。

checksum = sum(map(ord, b))

または

checksum = sum(bytearray(b))

/J

+0

この回答を受け入れることを忘れないでください! – razlebe

関連する問題