0

これが簡単な質問かどうかはわかりませんが、私はまだPythonに比較的慣れていません...しかし、とにかくすぐに始めます。現在、私は 2 つの 16 進数を 10 進数に変換するプログラムを持っています (これはこの例ではより意味があります)。それらはそれぞれカンマで区切られており、不定の長さになる可能性があります....各数値を 16 進数に変換し、それらの 16 進数を連結し、その数値を 10 進数に変換する方法があるかどうか疑問に思っています...変換の残りの部分を台無しにしたくありません。最初の部分を書かないでください、そしてその部分はプログラムの他の操作に必要です...

したがって、これを誰にとっても視覚的に表現すると、次のようになります。

これが私が今持っている小数です: (65, 222, 102, 102)

41de6666 (したがって、41 base 16 = 65 base 10、de base 16 = 222 base 10 など)

そして、これが私が実際に持ちたい小数です: 1105094246

これについてご意見をお寄せいただきありがとうございます。

編集:明確にするために、41de6666を簡単に10進数に変換するために利用できるものがないため、最初に指定されたリストを最終結果に変換する必要があります

4

1 に答える 1

2

これは Python 3 バージョンです。struct.unpackメソッドを使用して、ビッグエンディアンの 4 バイト整数を構築します。

>>> import struct
>>> x=(65,222,102,102)
>>> struct.unpack('>L',bytes(x))[0]
1105094246

Python 2 バージョンには がないため、 packbytesを使用して、アンパックされるバイト文字列を作成します。

>>> import struct
>>> x=(65,222,102,102)
>>> struct.unpack('>L',struct.pack('4B',*x))[0]
1105094246

この*x構文は、タプルを が期待する 4 つのパラメータに展開しますpack

于 2013-10-17T02:06:03.580 に答える