Está en la página 1de 8

ESTRUCTURA DE

COMPUTADORS

PRÁCTICA 7:

“Números en coma flotante”

Estructura de Computadores. Práctica 7: Números en coma flotante 1


 ASPECTOS TRATADOS: Formato números en coma flotante.

 MATERIAL NECESARIO: Computador personal, entorno programación,


aplicaciones web formatos números coma flotante.

 CONCEPTOS NECESARIOS: Formato IEEE 754.

 DURACIÓN ESTIMADA: 2h
 DESCRIPCIÓN: Desarrollar el software indicado y probar las herramientas
web indicadas.

Estructura de Computadores. Práctica 7: Números en coma flotante 2


DESARROLLO DE LA PRÁCTICA:

1) El siguiente programa permite visualizar la estructura interna de un


número en coma flotante según el estándar IEEE 754. Edita y ejecuta
dicho programa en el entorno CodeLite usado en prácticas anteriores
(instalar el compilador MinGW preferiblemente para 32 bits):
#include <stdio.h>

//EL DATO EN COMA FLOTANTE Y SU ACCESO COMO ENTERO COMPARTEN DIRECCIÓN DE MEMORIA:
union FP
{
float fDato;
int iDato;
};
//******************************************************************************
int main()
{
int i;
union FP ejemplo;
//········································································
ejemplo.fDato = -118.625; //1 10000101 11011010100000000000000

for (i = 31; i >= 0; i--)


{
printf("%d", (ejemplo.iDato & 1<<i)!=0?1:0);
}
return 0;
}

2) Modifica el anterior programa para que permita la entrada del número por
parte del usuario. Comprueba el funcionamiento obteniendo la
representación de los números:
a) 0.0 (incluir el punto decimal para forzar al compilador a interpretar un float en lugar de entero)

b) -0.0 (incluir el punto decimal para forzar al compilador a interpretar un float en lugar de entero)

c) 0.33333333333333333333

d) 0.1

Estructura de Computadores. Práctica 7: Números en coma flotante 3


3) La siguiente versión del programa permite acceder a los bits de la
representación individualmente para cambiar el valor asociado al número
en coma flotante. Ejecuta el programa para verificar y comprender su
funcionamiento:
#include <stdio.h>

//EL DATO EN COMA FLOTANTE Y SU ACCESO COMO ENTERO COMPARTEN DIRECCIÓN DE MEMORIA:
union FP
{
float fDato;
int iDato;
};
//******************************************************************************
int main()
{
int i;
union FP ejemplo;

//··············································································
············
ejemplo.fDato = 0.5;
printf("El dato original es: %f\n", ejemplo.fDato);

ejemplo.iDato += 100;
printf("El dato final es: %f", ejemplo.fDato);
}

4) Utilizando el principio visto en el programa anterior, haz que visualice los


números en coma flotante representados como (recomendación: utiliza el
formato hexadecimal para la introducción de los valores):

a) 0 11111111 00000000000000000000000

b) 0 11111111 00000000000000000000001

c) 01111111011111111111111111111111

d) 10000000010000000000000000000001

Estructura de Computadores. Práctica 7: Números en coma flotante 4


5) El siguiente programa implementa un bucle que comienza en 0, y en
pasos de 0.1 llega hasta 1.0:
#include <stdio.h>

int main ()
{
float inc = 1.0/10.0;
float val = 0.0;
float end = 1.0;
float sum = 0.0;

printf ("Programa que implementa un bucle desde: %22.15f \nhasta: %22.15f \nen
incrementos de: %22.15f\n", val, end, inc);
printf("Pulsa una tecla para continuar\n");
getchar();

while (val != end)


{
sum += val;
printf ("val = %22.15f; sum = %22.15f\n", val, sum);
val += inc;
}

printf ("Fin de bucle alcanzado con val = %22.15f; sum = %22.15f\n", val, sum);

6) Explica a continuación en detalle cuál es el funcionamiento esperado del


programa sin ejecutarlo, incluyendo los valores esperados mostrados en
pantalla:

Estructura de Computadores. Práctica 7: Números en coma flotante 5


7) Edita y ejecuta el programa para comprobar su funcionamiento. Describe
qué es lo que ocurre:

8) Cambia la condición del while a (val<=end). Describe de nuevo en detalle


qué ocurre y justifica los valores que aparecen en pantalla:

Estructura de Computadores. Práctica 7: Números en coma flotante 6


9) Cambia el tipo de las variables de float a double en el programa original.
Describe a continuación qué ocurre en este caso:

10) Modifica el programa original para que el funcionamiento y los


resultados sean los esperados. Inserta el código resultante a continuación:

Estructura de Computadores. Práctica 7: Números en coma flotante 7


Estructura de Computadores. Práctica 7: Números en coma flotante 8

También podría gustarte