Преобразование числа с плавающей запятой в его значение IEEE (32 бита) - PullRequest
0 голосов
/ 11 января 2020

Я хотел бы написать скрипт в python, который принимает значение с плавающей запятой, например -37.32, и выводит его значение IEEE (11000010000101010100011110101110). для первого бита, если число отрицательно, чем 1, иначе это 0. для показателя степени это дело деления числа на 2 и получения остатка, если я прав. Что касается мантиссы, я понятия не имею, как ее рассчитать. возврат строки был бы наиболее разумным способом, так как это было бы лучше для построения каждого элемента IEEE.

Может ли кто-нибудь помочь мне с подходом, который я выберу? или показать сценарий, решающий эту проблему и объясняющий ее мне?

1 Ответ

2 голосов
/ 11 января 2020

Модуль struct может использоваться для преобразования float в последовательность байтов. Тогда нужно просто преобразовать каждый байт в двоичную строку и соединить их вместе.

>>> import struct
>>> ''.join('{:08b}'.format(b) for b in struct.pack('f', -37.32))
'10101110010001110001010111000010'
...