Diseño de circuitos digitales y tecnología de computadores/Representación interna de números enteros

De Wikilibros, la colección de libros de texto de contenido libre.

Sistemas de representación[editar]

Hay tres modos de representación de números con signo: en signo y magnitud, en complemento a uno y en complemento a dos. En cualquiera de estos sistemas de representación, el bit más a la izquierda indica el signo (vale 0 para el signo + y 1 para el signo -). Los números positivos se representan del mismo modo en los tres sistemas: el bit de signo vale 0 y el resto de los bits codifican el valor absoluto (magnitud) del número en binario natural. Los números negativos se representan de distinto modo:

  • Signo y magnitud. La magnitud (valor absoluto) de los números negativos se codifica en binario natural, distinguiéndose de los números positivos por el bit de signo (BS). Existen dos representaciones del cero: +0 (BS=0) y -0 (BS=1).
  • Complemento a uno. Los números negativos se codifican hallando el complemento a uno de los números positivos:
    -N = Ca1(+N)


    El cero tiene dos representaciones: +0 (todos los bits igual a cero) y -0 (todos los bits igual a uno).

  • Complemento a dos. Los números negativos se codifican hallando el complemento a dos de los números positivos:
    -N = Ca2(+N) = Ca1(+N) + 1


    El cero tiene una única representación (todos los bits igual a cero), lo que permite representar un número negativo adicional: -2n-1, donde n es el número de bits de la palabra. Este número negativo adicional se representa con el bit de signo 1 (negativo) y los restantes bits igual a cero.

La tabla siguiente muestra los tres tipos de representación interna de enteros con signo usando una palabra de n=3 bits.

Decimal signo y magnitud complemento a 1 complemento a 2
+3 011 011 011
+2 010 010 010
+1 001 001 001
+0 000 000 000
-0 100 111 -
-1 101 110 111
-2 110 101 110
-3 111 100 101
-4 - - 100
rango -2n-1+1...2n-1-1 -2n-1...2n-1-1

Obtener la representación interna de un número decimal[editar]

ejercicio
ejercicio

Obtener la representación interna de un número decimal


Suponiendo la palabra de 16 bits, obtener la representación interna en signo y magnitud, complemento a uno y complemento a dos del número decimal -4040


Obtener el número decimal a partir de su representación interna[editar]

El número decimal a partir de su representación interna se obtiene según las siguientes reglas:

  • Cualquiera que sea la representación interna, el signo del número se obtiene directamente observando el bit de más a la izquierda: 1 si es negativo, 0 si es positivo.
  • Cualquiera que sea la representación interna, el valor absoluto (magnitud) de un número positivo se obtiene directamente cambiando la base de binario a decimal. El bit de signo, al ser un cero a la izquierda, no influye en el resultado.
  • El valor absoluto (magnitud) de un número negativo se obtiene de distinta forma según el tipo de representación:
    • Signo y magnitud: se obtiene directamente cambiando la base de binario a decimal, tras eliminar el bit de signo.
    • Negativos en complemento a uno: se obtiene hallando el complemento a uno, incluyendo el bit de signo, y cambiando luego la base de binario a decimal.
    • Negativos en complemento a dos: se obtiene hallando el complemento a dos, incluyendo el bit de signo, y cambiando luego la base de binario a decimal.

Para facilitar el cambio de base, se puede utilizar un código intermedio como el hexadecimal. Si el bit de signo es uno (signo negativo), el valor en hexadecimal del cuarteto más a la izquierda es igual o superior a 8. Si el bit de signo es cero (signo positivo), el valor en hexadecimal del cuarteto más a la izquierda es inferior a 8.


ejercicio
ejercicio

Obtener un número decimal a partir de su representación interna (número positivo)


Suponiendo la palabra de 16 bits, pasar a decimal la siguiente representación interna en complemento a dos

ejercicio
ejercicio

Obtener un número decimal a partir de su representación interna (número negativo)


Suponiendo la palabra de 16 bits, pasar a decimal la siguiente representación interna en complemento a dos


Suma y resta aritméticas[editar]

Para las operaciones de suma y resta en la representación de números enteros en signo y magnitud, se sigue el procedimiento matemático del sistema de numeración binario. Este procedimiento matemático requiere decisiones lógicas para determinar el signo del resultado, para determinar si los operandos deben sumarse o restarse y para determinar el orden de los operandos en el caso de tener que realizar una resta. En cambio, en las representaciones en complemento a uno o complemento a dos, el resultado incluyendo el signo se obtiene directamente al sumar los operandos, sin necesidad de operaciones lógicas adicionales.

En la representación de negativos en complemento a uno, la suma de dos números, cualesquiera que sean sus signos, se obtiene sumando los operandos y el acarreo resultante.

ejercicio
ejercicio

Suma de enteros (representación en complemento a uno)


Realizar la suma -1 + 2 = +1 siendo la representación interna en complemento a uno de 3 bits


En la representación de negativos en complemento a dos, la suma de dos números, cualesquiera que sean sus signos, se obtiene sumando los operandos y despreciando el acarreo resultante.

ejercicio
ejercicio

Suma de enteros (representación en complemento a dos)


Realizar la suma -1 + 2 = +1 siendo la representación interna en complemento a dos de 3 bits


En el caso de la resta, tanto en la representación de negativos en complemento a uno como en la de negativos en complemento a dos, se transforma la resta en una suma del sustraendo con el signo cambiado más el minuendo. El cambio de signo del sustraendo se realiza calculando el complemento a uno o el complemento a dos, respectivamente.

ejercicio
ejercicio

Resta de enteros (representación en complemento a uno)


Realizar la resta -1 - (+2) = -3 siendo la representación interna en complemento a uno de 3 bits

ejercicio
ejercicio

Suma de enteros (representación en complemento a dos)


Realizar la resta -1 - (+2) = -3 siendo la representación interna en complemento a dos de 3 bits


Hay que tener en cuenta la posibilidad de desbordamiento, es decir, que el resultado esté fuera del rango de valores de la representación interna utilizada. En la representación en signo y magnitud, el desbordamiento es detectado por el acarreo de salida del bit más significativo de la magnitud (no el bit de signo). En las representaciones de negativos en complemento a uno o complemento a dos, el desbordamiento se detecta cuando al sumar dos operandos del mismo signo, el signo del resultado es el contrario del de los operandos.