Problema con MPLAB y los numeros flotantes

#1


Hola a todos, soy Maria, estoy haciendo el proyecto final de carrera y trabajo con el MPLAB v7.2 para programar el PIC 18F2550.Me ha surgido un problema y no sé como solucionarlo, he pensado en escribiros para ver si me podeis ayudar, ya que me encuentro desesperada!!!
El problema lo tengo en que no sé de qué forma almacena el MPLAB los numeros flotantes, me explico: si yo defino en el programa principal una variable tipo float, tal que asi:

Unsigned flota dato = 3.14;

Y quiero ver si realmente he almacenado 3.14 en dato, entonces, uso la herramienta view-watch, y ahí me aparece que dato contiene el 7.022e-19, que es eso??.Leyendo el manual he visto que el MPLAB almacena los flotantes en formato IEE754, hasta ahí de acuerdo.Si paso el 3.14 a ese formato obtengo:

0 10000000 10010001111010111000011

Como transformadorrma ese numero en el 7.022e-19???, poruqe si yo esa ristra de bits la paso a decimal, me vuelve a dar el 3.14.Necesito saber como lo transformadorrma, poruqe quiero usar funciones relacionadas con los flotantes, como por ejemplo, modf.

Espero vuestra respuesta,

Un saludo,

maria
 
#2
maria ferrer lopez dijo:


Hola a todos, soy Maria, estoy haciendo el proyecto final de carrera y trabajo con el MPLAB v7.2 para programar el PIC 18F2550.Me ha surgido un problema y no sé como solucionarlo, he pensado en escribiros para ver si me podeis ayudar, ya que me encuentro desesperada!!!
El problema lo tengo en que no sé de qué forma almacena el MPLAB los numeros flotantes, me explico: si yo defino en el programa principal una variable tipo float, tal que asi:

Unsigned flota dato = 3.14;

Y quiero ver si realmente he almacenado 3.14 en dato, entonces, uso la herramienta view-watch, y ahí me aparece que dato contiene el 7.022e-19, que es eso??.Leyendo el manual he visto que el MPLAB almacena los flotantes en formato IEE754, hasta ahí de acuerdo.Si paso el 3.14 a ese formato obtengo:

0 10000000 10010001111010111000011

Como transformadorrma ese numero en el 7.022e-19???, poruqe si yo esa ristra de bits la paso a decimal, me vuelve a dar el 3.14.Necesito saber como lo transformadorrma, poruqe quiero usar funciones relacionadas con los flotantes, como por ejemplo, modf.

Espero vuestra respuesta,

Un saludo,

maria
María, el watch del Mplab muestra los numeros de coma flotante en 2 formatos. IEEE y Microchip.

Seguramente lo tienes en el formato erroneo, clickeas boton derecho sobre la variable que deseas ver bien en el watch y cambiale el formato. Lo debieras ver bien.

Saludos
 
Arriba