[Práctico 1][Ejercicio 7]

[Práctico 1][Ejercicio 7]

de Carlos Benito Musetti Puig -
Número de respuestas: 3

Buenas, en este ejercicio se pide ordenar la suma de la siguiente tira de numeros hexadecimales para evitar que se produzca overflow.

7744 + 5499 + 6788 +AB68 + 88BD + 9879 = 003

Lo que trate hacer fue primero pasar todos a binario, y luego ir probando las combinaciones de dos sumandos.

7744 = 0111 0111 0100 0100                            AB68= 1010 1011 0110 1000

5499 = 0101 0100 1001 1001                           88BD = 1000 1000 1011 1101

6788 = 0110 0111 1000 100                              9879 = 1001 1000 0111 1001

Hay tres negativos y tres positivos. 

Los negativos tienen 1 como el bit mas significante, por lo tanto sumar dos negativos daria un carry de 1 (por ejemplo, tomando el ultimo digito de AB68 y 88BD, 1010 + 1000 = 1 0010)

Entonces probe sumar entre negativos y positivos, y la unica combinacion que no me dio carry fue la de 5499 + 88BD. El resto todas me dio con carry = 1.

Quisiera saber si la forma que encare el ejercicio es la correcta y en caso de que no sea, si me pueden dar alguna ayudapara poder resolverlo.

Gracias 

En respuesta a Carlos Benito Musetti Puig

Re: [Práctico 1][Ejercicio 7]

de Gustavo Brown -

La idea está encaminada. Pero no tenes que evitar que se produzca carry; tenés que evitar que se produzca overflow.

Para ello lo más razonable es intercalar números de similar magnitud y signo opuesto.

Saludos,
  Gustavo

En respuesta a Carlos Benito Musetti Puig

Re: [Práctico 1][Ejercicio 7]

de Federico Rivero -

Estimado,

La forma de encarar el problema es correcta (pasar a binario y sumar positivos con negativos), pero lo importante a tener en cuenta es que en comlemento a dos, el carry el overflow son cosas distintas. 

Overflow ocurre cuando al sumar dos números en la representación, el resultado está fuera de rango. Una manera fácil de verificar esto es que a veces se suman dos positivos y el resultado interpretado en complemento a 2 es negativo, o viceversa. En el práctico y taller también se muestra que el overflow en complemento a dos se puede calcular como el xor de los últimos dos carries (el carry out y el carry hacia el bit más significativo).

Probá a hacer lo que estabas haciendo, pero calculando el overflow como comenté arriba, y cualquier cosa preguntás de nuevo!

Saludos,

           Federico