float
para o formato int
. int
para o formato float
. float
f
,
use o código abaixo: typedef union { float f; unsigned int i; } U; /* fora da funcao */ ... int funcao_que_voce_vai_escrever (float f) { unsigned int i; U u; u.f = f; i = u.i; ... /* seu codigo */ }
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))