0

任意の値 (負または正の値) を 16 進数に変換したいと考えています。私の現在の方法はこれを行います。

この例の読み取り値は 4003 です。

workingline = stringdb.readline().split(";")
print hex(int(workingline[0]))

これは戻ります

0xfa3

そのはず:

0xa30f0000

(ゼロで埋められ、反転された 16 進数) 値が負の場合は、次のようになります。

0xFEFFFFFF

値が -2 の場合。

この場合、パディングは役に立たないと思います。

ありがとうございました!

4

1 に答える 1

4

structモジュールが必要です:

>>> struct.pack("<I", 4003).encode('hex')
'a30f0000'

-2 の場合、他の作業を行う必要があります。

>>> struct.pack("<I", -2 + 2**32).encode('hex')
'feffffff'

任意の値に対してそれを行う方法は次のとおりです。

struct.pack("<I", (value + 2**32) % 2**32).encode('hex')
于 2012-06-03T01:18:14.413 に答える