2011-11-09 6 views
0

32ビット整数にフロートをマッピングする方法:はARドローン開発者ガイドからパイソン

を数-0.8は、その値がBF 4CCCCD(16)である32 ビットワードとしてメモリに格納され、 IEEE-754フォーマットに従う。この32ビットワード は、32ビット整数値-1085485875(10)を保持しているとみなすことができます。

Pythonでこれを行うための「簡単な方法」(組み込み関数/既存のモジュール)はありますか?

答えて

6

おそらく最良の方法ではありませんが、機能します。

import struct 
s = struct.pack("f", -0.8) 
i = struct.unpack("i", s) 
print i 
+1

私は「最良の方法ではないかもしれません」ということに同意しません。これは「明らかな方法」です。実際には、私はctypesを使って "pythonic"と考えている別のweayがありますが、@ eryksunのコメントのジャックとは異なり、ctype Unionタイプを使用します。 – jsbueno

関連する問題