преобразовать двоичное число (состоит из знака, мантиссы и экспоненты) в десятичное число в python - PullRequest
1 голос
/ 23 апреля 2020

У меня есть 32-битные двоичные числа. Я хочу преобразовать их в десятичную форму. Существует ли какая-либо встроенная функция или общее решение для этой задачи? На следующем рисунке показан пример.

enter image description here.

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

Вы можете использовать структурный модуль.

import struct
def bin_to_float(binary):
    return struct.unpack('!f',struct.pack('!I', int(binary, 2)))[0]

print(bin_to_float("11000011011110001100000000000000"))
##Output -248.75
0 голосов
/ 23 апреля 2020

Работа с:

Как правильно преобразовать байты в шестнадцатеричную строку в Python 3?

In [54]: bytes.fromhex('c378c000')                                                                     
Out[54]: b'\xc3x\xc0\x00'
In [55]: np.frombuffer(bytes.fromhex('c378c000'), '>f4')                                               
Out[55]: array([-248.75], dtype=float32)

np.float32 - это IEEE 754 формат.

...