나는 Python float 값을 가지고 있으며, 이것을 Microsoft Basic Float (MBF) 형식으로 변환해야합니다. 운 좋게도 인터넷에서 코드를 가져와 역순으로 처리합니다.IEEE Python float을 (를) 마이크로 소프트 기본 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]
이제이 과정을 되돌려 야하지만 아직 성공하지 못했습니다. 제발 도와주세요. 당신이 Windows에서 실행하는 동안 이러한 변환을 수행 위하여려고하는 경우에
당신이 8 바이트 파이썬 플로트와 4 바이트 MS 부동의 출력의 입력 여부를 확인하시기 바랍니다이 아닌 8 바이트 MS 플로트. –