2017-05-18 22 views
1

この16進数文字列'8436d4ccd436d3333'をIEEE浮動小数点に変換したいと思います。私はstruct.unpackでこれを実行しようとしましたが、それは私が私の変換の試みが正しいかどうかを確認するために、このウェブサイトを使用しています4.16進数をIEEE浮動小数点Pythonに変換する方法

struct.unpack('>f', binascii.unhexlify('8436d999a436e0000')) 

長さの文字列引数を必要としています:https://gregstoll.dyndns.org/~gregstoll/floattohex/が、私は方法を見つけることができませんこれをする。推測で任意の助け

答えて

0

ため

おかげで、各16進文字列が単精度浮動小数点値ではなく、一つであり、初期8を含有するどのメッセージ・プロトコルの一部で使用され、そしてそれらの浮動小数点のいずれかの一部ではありません。その推測では、私はいくつかのもっともらしい-探して番号を取得:

>>> struct.unpack('>ff', binascii.unhexlify('436d4ccd436d3333')) 
(237.3000030517578, 237.1999969482422) 
>>> struct.unpack('>ff', binascii.unhexlify('436d999a436e0000')) 
(237.60000610351562, 238.0) 

と妥当性を強化するために、ここで私は、対応する1桁-過去-小数点値を符号化することによって得るものです:

>>> binascii.hexlify(struct.pack('>ff', 237.3, 237.2)) 
b'436d4ccd436d3333' 
>>> binascii.hexlify(struct.pack('>ff', 237.6, 238.0)) 
b'436d999a436e0000' 
関連する問題