Práctica 2 - Representación de números reales y caracteres

Anuncio
Práctica 2 - Representación de números reales y caracteres
Organización del Computador 1
Verano 2008
Conversión y expresabilidad de números reales
Ejercicio 1
a) Expresar los siguientes números en base 10. Distinguir numerales finitos e infinitos.
0, 12
10, 010112
0, 13
0, 47
b) Expresar los siguientes números en la base indicada, utilizando el método de la multiplicación
para la parte fraccionaria. Distinguir numerales finitos e infinitos.
0, 110 −→ base 2
0, 110 −→ base 3
0, 37510 −→ base 2
12, 37510 −→ base 2
Ejercicio 2
a) Sean b1 y b2 dos números cualesquiera mayores que 1. Mostrar que:
Si b1 divide a b2 , entonces: todo número racional expresable con una cantidad finita de
dı́gitos en b1 es expresable con una cantidad finita de dı́gitos en b2 , pero no necesariamente al revés.
Si b2 es una potencia de b1 , entonces: todo número racional es expresable con una
cantidad finita de dı́gitos en b2 si y sólo si es expresable con una cantidad finita de
dı́gitos en b1 .
Si b1 y b2 son coprimos (i.e., no tienen divisores en común) entonces: ningún número
racional (no entero) expresable con una cantidad finita de dı́gitos en b1 se puede expresar
con una cantidad finita de dı́gitos en b2 .
b) En base al ı́tem anterior, ¿qué relación hay respecto a la expresabilidad finita de números
racionales entre las bases 2 y 10? ¿Y entre las bases 2 y 5?
c) Decidir si está de acuerdo con la siguiente afirmación: “La naturaleza hizo más difı́cil la vida
de los estudiantes de computación al dotarnos de meñiques, pero podrı́a haber sido mucho
peor si encima nos privaba de la simetrı́a axial.”. Justificar.
1
Representación de reales usando Punto Fijo
Ejercicio 3
a) Suponga que representamos números reales usando codificación sin signo de 32 bits, de los
cuales los 4 bits menos significativos posiciones representan la parte fraccionaria y los 28
restantes la parte entera.
Responder las siguientes preguntas:
a) ¿Cuáles son el máximo y el mı́nimo número que se pueden representar?
b) ¿Existe algún número estrictamente real (que sea real pero no sea racional) que se
encuentre entre el máximo y el mı́nimo pero no sea representable?
c) ¿Cuáles son el máximo y el mı́nimo número representables entre 0 y 1?
d ) ¿Cuántos números se pueden representar?
b) Repetir el ı́tem anterior, pero esta vez suponiendo codificación notación complemento a 2,
donde los 4 bits menos significativos posiciones representan la parte fraccionaria.
Representación de reales usando Punto Flotante
Ejercicio 4
a) Realizar las siguientes operaciones de punto flotante decimal con mantisa de cuatro dı́gitos
y exponente de dos. Indicar en qué casos se produjo overflow o underflow:
0, 6020 × 1024
+
0, 0001 × 10−99
0, 550 × 10
65
/
×
0, 8051 × 10−99
0,1000 × 10
−0, 0001 × 1043
b) ¿Cuáles son las ventajas de trabajar con números normalizados?
Ejercicio 5 Responder las siguientes preguntas sobre los formatos IEEE 754 de precisión simple
y doble:
a) ¿Con cuántos bits se representan los números en estos sistemas?
b) ¿Cuántos bits tiene el significante (fracción)?
c) ¿Cuántos bits tiene el exponente?
d) ¿Con qué sistema está representado el exponente? (sin signo, notación complemento a 2,
exceso a. . . , etc)
e) ¿Existe bit de signo?
f) ¿Cuál es el intervalo de valores posibles del exponente?
g) ¿Entre qué valores de R se encuentran los valores representados por el significante cuando
el número se encuentra normalizado?
h) ¿Cuáles son los números que representan los infinitos?
i) ¿Cuáles números representan el cero?
2
j) ¿Cuáles son los rangos del exponente y el significante que representan un número normalizado?
k) ¿Cuáles son los rangos del exponente y el significante que representan un número desnormalizado?
l) ¿Cuáles son los rangos del exponente y el significante que representan un NaN (Not a Number)?
Ejercicio 6
a) Convertir los siguientes números al formato IEEE 754 de precisión simple. Representar los
resultados con ocho dı́gitos hexadecimales.
910
−0, 1562510
6, 12510
b) ¿Qué números reales representan las siguientes cadenas hexadecimales si la codificación es
IEEE 754 de precisión simple?
42E4800016
0080000016
4000000016
Representación de caracteres
Ejercicio 7 Sea el siguiente sistema de representación de caracteres, que sólo permite representar
las letras mayúsculas del alfabeto castellano y los dı́gitos decimales:
Vocales (1 byte): 0x011 al 0x05 (en orden alfabético);
Consonantes (2 bytes): 0x0001 al 0x00F7 (en orden alfabético);
Dı́gitos (3 bytes): 0x060001 al 0x060009.
a) Codificar las cadenas de caracteres
“ORGA1”
“123YA”
a) en formato little-endian 2 .
b) en formato big-endian 3 .
b) Asumiendo que este sistema se utilizará en un contexto en el cual se espera que se cumplan
las siguientes frecuencias de apariciones de sı́mbolos: números 25 %, letras 75 % (de los cuales
45 % serán vocales); ¿cuál es la longitud media de un carácter en ese contexto?
c) Proponga un sistema de representación compatible con el presentado más arriba, que permita
disminuir la longitud media del carácter bajo el contexto mencionado en el punto anterior.
1 El
prefijo 0x indica que el número está expresado en base hexadecimal.
decir, escribiendo el byte menos significativo primero.
3 Es decir, escribiendo el byte más significativo primero.
2 Es
3
d) ¿Cuál es el porcentaje de la mejora del nuevo sistema respecto del original?
e) Codifique las cadenas del primer ı́tem utilizando el nuevo sistema.
f) En su sistema, ¿hay unicidad de representación?
Ejercicio 8 Dada la siguiente secuencia de bytes (ordenada de izquierda a derecha y de arriba a
abajo)
C2
73
A1
74
45
72
73
69
74
6E
6F
67
20
20
6E
65
6F
6E
20
20
65
55
73
54
20
46
75
2D
6E
38
20
21
Decidir los valores que representa cuando se la interpreta:
como un vector (array) de 8 números de 32 bits, en notación complemento a 2, little-endian;
como una matriz de 4 × 4 números de 16 bits, sin signo, big-endian;
como dos números de punto flotante IEEE 754 de precisión doble, little-endian;
como un string UTF-8.
4
Descargar