Foros de daboweb
MULTIMEDIA, Video digital, Grabación, Diseño gráfico, Diseño web, Programación => Webmasters - Diseño Web - Programación - Diseño gráfico => Mensaje iniciado por: nakarar en 02 de Abril de 2006, 08:57:46 pm
-
Resulta que estoy haciendo una práctica para la universidad, es un ejercicio para praticar de teleco que trata de pasar un numero de decimal a IEEE-754. La cuestión es que cuando quiero pasar la parte decimal (p.ej: .7826) me cuela en los calculos unos decimales al final.
el codigo es:
kTam vale 19;
num2 es los decimales del numero introducido, en este caso: 0.7826;
for (i=0; i<kTam; i++)
{
aux1=num2*2;
aux2=(int)aux1;
binario=aux2; //Almaceno en un vector de enteros para un uso posterior
num2=(float)aux1-aux2;
cout<<num2<<endl; // Aqui deberian salir solo 4 decimales, pero me coloca 0.000001, 0.000002, etc... despues de cada operacion
}
El problema es lo que digo en el comentario. Para las operaciones necesito 4 decimales, porque sino, como ocurre en el ejemplo, al final me llega al 0 y es algo q no deberia... no se si me explico... :verysad:
-
Hola compañero!
He estado repasando un poco el estándar IEEE 754, con el que no tengo mucha experiencia.
Veo que hay 2 formatos:
Simple precisión, 32 bits (Word):
1 bit para el signo
8 bits para exponente
23 bits para la mantisa
Simple precisión, 64 bits (DWord):
1 bit para el signo
11 bits para la exponente
52 bits para la mantisa
Por lo que yo entiendo, y corrígeme si me equivoco, aunque quieras operar con 4 decimales, creo que deberías asegurar que el resto de decimales están a cero, uses el formato que uses.
Y cuando presentes el resultado, al redondear, el error aceptado debería eliminar ese decimal que te aparece.
Por otro lado, sin el resto de código me cuesta entender el algoritmo, tengo algunas dudas:
1.- ¿Cuanto vale? endl
2.- ¿Que tipo es?
3.- IDEM para cout.
En cualquier caso, creo que el problema está en los ceros que has de asegurar a la derecha, aunque solo trabajes con 4 decimales.
Pero solo es una suposición, pues no he trabajado con este formato.
Dinos algo.
P.D. Una Fuentes interesantes:
1.- Wikipedia: http://es.wikipedia.org/wiki/IEEE_754 (http://es.wikipedia.org/wiki/IEEE_754)
2.- Calculadora On-Line: http://babbage.cs.qc.edu/courses/cs341/IEEE-754.html (http://babbage.cs.qc.edu/courses/cs341/IEEE-754.html)
(Aquí puedes ver que también le sale un decimal al final en el modo 32 bits, y que no sale en el de 64, por lo de la precisión.)
3.- Página de recursos de unos compañeros de fatigas: http://dac.escet.urjc.es/lrincon/enlaces/representacion-informacion.html (http://dac.escet.urjc.es/lrincon/enlaces/representacion-informacion.html)