1

たとえば、0100000001000000000000000000000 の 32 ビット IEEE 値の整数値を Python で取得するにはどうすればよいですか

I would 0 100000001 000000000000000000000 はそれぞれ符号ビット、指数、小数値です。

Pythonでこのようなコードをどのようにコーディングするのだろうかと思っています。手順は何ですか、または誰かがそれから学ぶためのコードを手伝ってくれるなら、それは素晴らしいことです. ありがとう!

4

1 に答える 1

3

これはかなり回りくどい方法です...最初に文字列を整数(基数2)として解釈します:

>>> s = '01000000010000000000000000000000'
>>> i = int(s, 2)
>>> i
1077936128

これで、次を使用して、その整数の整数ビット単位表現を取得できますstruct.pack

>>> b = struct.pack('i', i)
>>> b
'\x00\x00@@'

そして最後に、struct.unpackこれらのバイトを float であるかのようにできます。

>>> f, = struct.unpack('f', b)
>>> f
3.0
于 2016-04-07T06:23:10.773 に答える