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