float
. A
função deve retornar -1, 0, ou 1 dependendo do primeiro número ser
menor, igual, ou maior que o segundo. (Essa função não é complicada. A
representação IEEE tem propriedades especiais que facilitam essa
operação.) float
para o formato int
. int
para o formato float
. float
f
,
use o código abaixo: unsigned int i = *(unsigned int *)&f;
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))