İkili bir sayıyı bir float numarasına dönüştürmek istiyorum. İşte olasılığın bir örnek:Bir ikili (dize) bir float değerine nasıl dönüştürülür?
>>> float(-0b1110)
bana doğru çıktı verir: Maalesef
, ben yani ben float('-0b1110')
gibi bir şey gerekiyor, ikili dizeleri ile çalışıyorum.
Ancak bu işe yaramazsa:
>>> float('-0b1110')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): -0b1110
geri ikiliye alıntı-yazdırılabilir veri bloğunu dönüştürür ve ikili veri döndürür binascii.a2b_qp(string[, header])
kullanmaya çalıştı. Ben çıkış sayı bir tamsayı ama durumları iyi anlamak
>>> float(binascii.a2b_qp('-0b1110'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): -0b1110
ne numarayı 12,546 elde etmek istiyorsanız: Ama sonunda, ben de aynı hatayı alıyorum? İşlev, ikili dizge için neyi arar?
12.546' 'ikili gösterimi nasıl olur - bu IEEE 754 binary32 veya binary64 nedir? Değilse, ikili nokta nasıl temsil edilir veya dizide varsayılan konumu nerede? – martineau
Şamandıra 12.546'nın ikili gösterimi IEEE 754 ikili64'tür. – deedee
Tamam, ancak '0b10110011000000', '-0.011' değil, '-14.0' IEEE 754 binary64 gösterimidir. – martineau