私はPython言語の初心者です.C++やJavaで非常に簡単に行うことができますが、何らかの理由で畳み込まれているようですPythonでやること。私は次の4バイトの配列をビッグエンディアンの順序で持っています:Pythonを使用して4バイトを32ビット浮動小数点として解釈する方法
[0x64, 0xD8, 0x6E, 0x3F]
私はすでにこれらのバイトが何を表しているかは既に知っています。 0.932989
これらの4バイトをその浮動小数点として解釈し、その数を格納するために、Pythonを使用して実行する必要がある手順(追加のインポートを使用しないことが望ましいバージョンv3.2.1)私は32ビット浮動小数点値として扱うことができる変数に?私。
x = [0x64, 0xd8, 0x6e, 0x3f]
y = int.from_bytes(x, byteorder='little', signed=False) #interpret bytes as an unsigned little-endian integer (so far so good)
z = float(y) #attempt to cast as float reinterprets integer value rather than its byte values
y
が1064228964
であるそれらのバイトの右側の期待整数解釈を、持っているにそれをキャストする場合、問題が来る:私は、私が試しただけで、次の変数myVar = 0.932989
として使用することができます32ビットfloat
。 y
の生のバイトをfloatとしてキャストするのではなく、それらのバイトの整数表現をキャストするので、0.932989
の代わりにには1064228964.0
が含まれます。この単純なタスクを実行するために使用できるint.from_bytes
に相当するものがありますか?おそらくfloat.from_bytes
のようなものでしょうか?
'struct'モジュールを見てください。 – roadrunner66