INF1612 - Software Básico

Aulas de Laboratório

Representação de Números com Ponto Flutuante

O objetivo deste laboratório é escrever as funções abaixo, em C ou assembler, sem usar operações de ponto flutuante. As funções devem operar diretamente sobre a representação binária dos números.

Observações:

unsigned int i = *(unsigned int *)&f; 
Uma conversão direta, como i = (unsigned int)f, não funciona, pois o C irá converter o formato.

#define getsig(f)        ((f)>>31 & 1)
#define getexp(f)        ((f)>>23 & 0xff)
#define getmant(f)       ((f) & 0x7fffff)
#define makefloat(s,e,m) ((s & 1)<<31 | (((e) & 0xff) << 23) | ((m) & 0x7fffff))