Representacion punto flotante
Horst von Brand
vonbrand en inf.utfsm.cl
Sab Feb 12 23:47:22 CLST 2005
Carlos Manuel Duclos Vergara <carlos en embedded.cl> dijo:
> > Necesito "ver" en hexadecimal cómo se almacena en la memoria una
> > variable de punto flotante (float).
> >
> > Mi idea es "apuntar" al primer byte por medio de un puntero, mostrar lo
> > almacenado en ese byte de memoria en hexadecimal y hacer lo mismo con
> > los otros tres, pero no he logrado usar adecuadamente los punteros para
> > lograrlo.
> no uses punteros usa unions
>
> union s {
> float valor_flotante;
> char bytes[ NUMERO_BYTES_IMPLEMENTACION ]
> }
Si es por eso, mejor:
union s {
float valor_flotante;
unsigned char byte[sizeof(float)];
}
Hay implementaciones en que los char tienen signo, y terminas con cosas
raras al intentar escribir "negativos". Y sizeof() te da el taman~o en
char, siempre. Claro que nada garantiza que un char sea un byte en C...
claro que en las maquinas "normales" es asi.
--
Dr. Horst H. von Brand User #22616 counter.li.org
Departamento de Informatica Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria +56 32 654239
Casilla 110-V, Valparaiso, Chile Fax: +56 32 797513
Más información sobre la lista de distribución Linux