Operadores ATMega128

0

Estoy usando el micro ATMega128 para un proyecto y CodeVisionAVR. Parece que cuando intento un + = con 2 flotadores, no se calcula correctamente. Por ejemplo, si estoy haciendo un bucle PI para el integrador y hago algo como:

   float iTemp = 0;
   float countOffset = 0;
   iTemp += countOffset;

Si hago eso en mi código, da números muy raros que no tienen sentido (esperando ~ 50, normalmente algo como DC3D, pero cambia cada vez que imprimo los números), ni siquiera puedo pensar en dónde Vienen desde que son inconsistentes. Mi pregunta principal, ¿puedes usar el operador + = con flotadores?

* Nota al margen: ¿Qué pasa con a ++ con un flotador?

    
pregunta biggi_

1 respuesta

4

1) float type es de 32 bits, por lo que si realmente desea imprimirlo en representación hexadecimal, debe usar el especificador de formato adecuado (o simplemente examinar el número correcto de bytes).
2) los flotadores están usualmente representados en el formato IEEE 754 en la memoria, por lo que La representación HEX no se traduce directamente al valor flotante real, por lo que puede parecer aleatorio.
3) Los operadores aritméticos que ha mencionado funcionan bien con flotadores.

* Para averiguar el tamaño de un tipo en bytes, use el operador sizeof .

    
respondido por el Eugene Sh.

Lea otras preguntas en las etiquetas