🚀 Projeto 19 – Conversor e Decodificador IEEE 754 de Ponto Flutuante
🎯 Objetivo
Desenvolver um decodificador em Python para inspecionar os bits de um número de ponto flutuante em precisão simples (32 bits), decompondo o bit de sinal, o expoente com viés (bias 127) e a mantissa.
📋 Requisitos do Projeto
- Aceitar um número de ponto flutuante (ex:
6.25,-3.0). - Converter a representação de memória em 32 bits binários.
- Imprimir detalhado o Sinal (\(S\)), Expoente Bruto, Expoente Real e Mantissa.
💡 Código de Referência
import struct
def decodificar_ieee754(num: float):
# Converte float Python para 32-bit IEEE 754 em binario
packed = struct.pack('>f', num)
bits = ''.join(f'{b:08b}' for b in packed)
s = int(bits[0])
e_bruto = int(bits[1:9], 2)
e_real = e_bruto - 127
m_bits = bits[9:]
print(f"Número Float: {num}")
print(f"Bits (32 bits): {bits[0]} | {bits[1:9]} | {bits[9:]}")
print(f"Sinal: {s} ({'-' if s else '+'})")
print(f"Expoente: {e_bruto} (Real: {e_real})")
print(f"Mantissa (23 bits): {m_bits}")
decodificar_ieee754(6.25)