Python에서 바이트를 부동 소수점 숫자로 변환
-
08-06-2019 - |
문제
구문 분석해야 하는 바이너리 파일이 있고 Python을 사용하고 있습니다.4바이트를 단정밀도 부동 소수점 숫자로 변환하는 방법이 있나요?
해결책
>>> import struct
>>> struct.pack('f', 3.141592654)
b'\xdb\x0fI@'
>>> struct.unpack('f', b'\xdb\x0fI@')
(3.1415927410125732,)
>>> struct.pack('4f', 1.0, 2.0, 3.0, 4.0)
'\x00\x00\x80?\x00\x00\x00@\x00\x00@@\x00\x00\x80@'
다른 팁
약간의 추가 사항입니다. 튜플 대신 unpack 메소드의 출력으로 부동 소수점 숫자를 원하는 경우 다음을 작성하십시오.
>>> [x] = struct.unpack('f', b'\xdb\x0fI@')
>>> x
3.1415927410125732
더 많은 수레가 있으면 그냥 쓰십시오.
>>> [x,y] = struct.unpack('ff', b'\xdb\x0fI@\x0b\x01I4')
>>> x
3.1415927410125732
>>> y
1.8719963179592014e-07
>>>
제휴하지 않습니다 StackOverflow