Práctica 1 - Representación de números enteros Organización del Computador 1 Verano 2008 Ejercicio 1 a) Expresar los siguientes números en bases 2, 3 y 5, usando el método del cociente. 33 10 100 10 1023 10 b) Expresar los siguientes números en base 10. 1111 2 1111 3 1111 5 CAFE 16 c) Expresar los siguientes números en la base indicada. 17 8 en base 5 BABA 13 en base 6 d) Pasar los siguientes números expresados en base 2 a base 4, 8 y 16 agrupando bits (los espacios cada cuatro dígitos binarios se incluyen por claridad). (1001 0110 1010 0101) 2 (1111 1011 0010 1101 0000 0110 0111) 2 e) Está de acuerdo con la siguiente afirmación? Si la naturaleza no nos hubiera provisto de dedos meñiques, entonces no serían necesarios ejercicios de cambio de base en una materia de organización de computadoras. Justificar y, de ser necesario, culpar a la naturaleza. Ejercicio 2 Realizar las siguientes sumas de precisión fija, sin convertir a decimal. Indicar en cada caso si hubo acarreo. 1
+ 011110 2 + 011111 2 + _ + 1111 16 + F0CA 16 Ejercicio 3 Puede suceder en alguna base que la suma de dos números de precisión fija tenga un acarreo mayor que 1? Exhibir un ejemplo o demostrar lo contrario. Ejercicio 4 Mostrar que en cualquier base b, el resultado de multiplicar dos números de k dígitos no requiere más de 2 k dígitos. Ejercicio 5 Realizar los siguientes productos de precisión fija, sin convertir a decimal. Recordar que la respuesta se debe expresar con el doble de dígitos que los multiplicandos. 011110 2 011111 2 1111 16 B0CA 16 Ejercicio 6 a) Sea invertirysumaruno(x) la operación que consiste en invertir todos los bits de un número de precisión fija x y sumarle 1, descartando el acarreo. Sea luego signoymagnitud(x) la operación que setea en 1 el bit mas significativo de su resultado si este es negativo, o lo deja en 0 si este es positivo, y luego codifica en los demás bits x en binario. Si tenemos los numerales binarios: n = (1011 1111) 2, m = (1000 0000) 2 y q = (1111 1111). Responder: a) Qué número representan n, m y q si asumimos que son enteros codificados en complemento a 2? b) Qué número representan n, m y q si asumimos que son enteros codificados en signo+magnitud? c) Qué número representan invertirysumaruno(n) y invertirysumaruno(q) si asumimos que son enteros codificados en complemento a 2? d) Qué número representa invertirysumaruno(invertirysumaruno(n)) si asumimos que es un entero codificado en complemento a 2? b) Es cierto que para cualquier numeral binario n, n y invertirysumaruno(n) son decodificados por complemento a 2 como la misma magnitud con el signo opuesto? c) Dados k bits para representar números enteros con signo, Habrá números s en complemento a 2, que no se puedan representar usando signo+magnitud? Habrá números s en signo+magnitud, que no se puedan representar en complemento a 2? De responder negativamente a alguna de estas preguntas, justifique. De responder positivamente, de un ejemplo. 2
Ejercicio 7 Codificar los siguientes números en base 2, usando la precisión y forma de representación indicada en cada caso. Comparar los resultados. 0 10 usando 8 bits notación notación signo+magnitud y notación complemento a 2. 1 10 usando 8 y 16 bits, en ambos casos notación complemento a 2 y con notación de signo+magnitud. 255 10 usando 8 bits notación sin signo y 16 bits notación complemento a 2. 128 10 usando 8 y 16 bits, en ambos casos notación complemento a 2. 128 10 usando 8 bits notación sin signo y 16 notación complemento a 2. Ejercicio 8 a) Completar la siguiente tabla respecto de los números de 32 bits. Mínimo número Máximo número Cantidad de números s sin signo signo+magnitud exceso 2 31 complemento a dos b) Generalizando, completar la siguiente tabla para números de k bits (k > 0): Mínimo número Máximo número Cantidad de números s sin signo signo+magnitud exceso 2 k 1 complemento a dos c) Decidir si la siguiente afirmación es verdadera o falsa: No es posible dar con ningún sistema de representación para números con signo (en base 2) que sea biyectivo (o sea, que no deje ningún valor sin interpretar y no tenga números con más de una representación) y donde la cantidad de números positivos y negativos (sin contar el cero) sea la misma. Justificar. Ejercicio 9 Realizar las siguientes sumas de precisión fija, sin convertir a decimal, asumiendo notación complemento a 2. Se debe indicar en cada caso si hubo acarreo y si hubo overflow. Comparar los resultados con los del Ejercicio 2. 3
+ 011110 2 + 011111 2 + _ + 1111 16 + F0CA 16 Ejercicio 10 Cómo acomodaría esta suma de números hexadecimales de 4 dígitos en notación complemento a 2, para que en ningún momento se produzca overflow? 7744 16 + 5499 16 + 6788 16 + AB68 16 + 88BD 16 + 9879 16 = 0003 16 Ejercicio 11 Son correctos los resultados de las multiplicaciones del Ejercicio 5 si los valores se interpretan en notación complemento a 2? De no ser así, cómo se podría adaptar el algoritmo de multiplicación? Ejercicio 12 Sea f 1 (x) = 2 31 + x, con dominio A Z e imagen B IN. Esta función representa la codificación de enteros de exceso 2 31, de 32 bits. a) De una función f 2 (x) para la codificación de enteros sin signo de 32 bits. b) De una función f 3 (x) para la codificación usando complemento a 2 de enteros con signo de 32 bits, y muestre que es correcta. (Ayuda: piense en una función partida, y en el caso de los negativos utilize algo parecido a f 1 ). c) Cuales de estas tres funciones son biyectivas? En caso afirmativo muéstrelo, y en caso negativo de un ejemplo de dos elementos con la misma imagen. d) Generalice las tres funciones para que sirvan para números de k bits, en lugar de 32. e) Indique imagen y dominio, en función de k, de las versiones generalizadas de las funciones. Demuestre luego que la codificación de complemento a 2 para k bits, permite representar el mismo rango de enteros que la de exceso de 2 k 1 bits para k bits. Ejercicio 13 Puede darse una función de Z en IN que represente la codificación de signo+magnitud? De responder afirmativamente, de la función. De responder negativamente, justifique. Ejercicio 14 Demostrar o refutar con un contrajemplo la siguiente afirmación: Si un entero x se puede representar en notación complemento a 2 de k bits, entonces también se puede representar en notación exceso 2 k 1 usando k bits, y ambas representaciones difieren sólo en el bit más significativo. (Ayuda: utilizar las funciones definidas anteriormente y operar algebraicamente) 4
Ejercicio 15 La función SignExt n convierte números de k bits en números de k + n bits de la siguiente manera: SignExt n (b k 1... b 0 ) = { 0... 0bk 1... b 0 si b k 1 = 0 1... 1b k 1... b 0 si b k 1 = 1 Mostrar que para todo número x de k bits, x y SignExt n (x) representan el mismo número si se los interpreta en notación complemento a 2 de k y k + n bits respectivamente. 5