Я получил значение float для Python, и мне нужно преобразовать его в формат Microsoft Basic Float (MBF). К счастью, у вас есть код из Интернета, который делает обратное.Как преобразовать из IEEE Python float в Microsoft Basic float
def fmsbin2ieee(self,bytes):
"""Convert an array of 4 bytes containing Microsoft Binary floating point
number to IEEE floating point format (which is used by Python)"""
as_int = struct.unpack("i", bytes)
if not as_int:
return 0.0
man = long(struct.unpack('H', bytes[2:])[0])
exp = (man & 0xff00) - 0x0200
if (exp & 0x8000 != man & 0x8000):
return 1.0
#raise ValueError('exponent overflow')
man = man & 0x7f | (man << 8) & 0x8000
man |= exp >> 1
bytes2 = bytes[:2]
bytes2 += chr(man & 255)
bytes2 += chr((man >> 8) & 255)
return struct.unpack("f", bytes2)[0]
Теперь мне нужно отменить этот процесс, но пока не получилось. Любая помощь пожалуйста.
Пожалуйста, подтвердите, что вы хотите ввод 8-байтового поплавком и выход 4-байтового MS поплавка Python, а не 8-байтовое MS поплавка. –