Práctica 2 - Representación de números reales y caracteres Organización del Computador 1 1er. Cuatrimestre 2007 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 65 0, 550 × 10 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 los siguientes strings hexadecimales si la codificación es IEEE 754 de precisión simple?: 42E4800016 0080000016 4000000016 Representación de caracteres Ejercicio 7 a) Expresar el string (cadena de caracteres) “¿A quién coño se le ocurrió usar 5 sı́mbolos arriba de 127 en esta frase?” como un string hexadecimal, utilizando las siguientes codificaciones: ISO-8859-1 UTF-8 (opcional) UTF-16LE (i.e., UTF-16 en little-endian) b) 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 3