Operaciones aritméticas: Complemento a 1

Suma C1

La suma es simple, la hacemos como binario puro. En el siguiente ejemplo debemos sumar en C1 5 bits, por ejemplo 7-510. 7 es positivo asi que en C1 queda exactamente igual que en SM, 00111. Ahora bien, en una computadora no se resuelve una resta sino que se cambia el segundo valor a negativo para poder hacer una suma. Entonces queda 7+(-5) que es equivalente y tiene que dar el mismo resultado. Pasemos entonces -5 a C1

Y hacemos la suma (¡ojo!) Estamos trabajando en 5 bits, el resultado debe dar en 5 bits. Vamos a resolver la suma tomando todos los bits, es decir el signo también se debe sumar.

Vemos que se va propagando un acarreo hasta el ultimo bit, o mejor dicho el más significativo. Si el carry se propaga más allá del tamaño de nuestra representación se produce una condición llamada “end-around carry” ¿Ok, entonces qué pasa con el acarreo? En C1 si el bit mas significativo produce acarreo, este vuelve a entrar sumando al bit menos significativo:

El resultado es 00010, el bit 4 tiene el valor 0, quiere decir que es positivo, entonces resolvimos la suma en C1, pero al ser positivo, la representación es la misma para SM, y podemos decir directamente cuanto vale:

00010 C1 —> 2(10)

Suma C2

La operación suma en complemento a 2 es muy similar a complemento a 1, pero veamos algunos detalles a tener en cuenta con ejemplos. Hagamos la operación -40-35(10) en C2, en este caso ambos números son negativos y el resultado debe quedar negativo

Paso 0) Pasamos ambos números a C2

Sino recordas como pasar a complemento a 2 consulta acá

Paso 1) Bien, ahora que tenemos ambos números en C2, hacemos la suma.

Y que sucede con el acarreo, en C2 cuando el bit más significativo produce acarreo a diferencia de C1, este se pierde.

¿Cómo podemos corroborar que el resultado está bien? ¡Aplicando C2 nuevamente!

Volver

— Mariano Vargas

()