Python Kayan noktalı sayılar için Bytes dönüştürme

oy
31

Ben ayrıştırmak zorunda bir ikili dosya var ve ben Python kullanıyorum. 4 bayt alıp kayan nokta sayısı tek hassasiyet dönüştürmek için bir yolu var mı?

Oluştur 07/08/2008 saat 21:24
kaynak kullanıcı
Diğer dillerde...                            


3 cevaplar

oy
13

Sen isteyeceksiniz yapı paketi.

Cevap 07/08/2008 saat 21:35
kaynak kullanıcı

oy
54

>>> 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@'
Cevap 16/09/2008 saat 13:59
kaynak kullanıcı

oy
1

Bunun yerine bir başlığın açmak yönteminden çıktı olarak bir kayan sayı istiyorsanız Sadece küçük bir ek, sadece yazma

>>> [x] = struct.unpack('f', b'\xdb\x0fI@')
>>> x
3.1415927410125732

Eğer daha fazla şamandıra varsa o zaman sadece yazma

>>> [x,y] = struct.unpack('ff', b'\xdb\x0fI@\x0b\x01I4')
>>> x
3.1415927410125732
>>> y
1.8719963179592014e-07
>>> 
Cevap 13/01/2019 saat 10:22
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more