У меня есть 32-битные двоичные числа. Я хочу преобразовать их в десятичную форму. Существует ли какая-либо встроенная функция или общее решение для этой задачи? На следующем рисунке показан пример.
.
Вы можете использовать структурный модуль.
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
Работа с:
Как правильно преобразовать байты в шестнадцатеричную строку в 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 формат.
np.float32