Aritmética Binaria y Representación de Datos en Arquitectura de Computadoras

Introducción a la Aritmética Binaria

  • Contexto Académico: Universidad Tecnológica Nacional (UTN) - Facultad Regional Santa Fe.
  • Temática Central: Arquitectura de Computadoras enfocada en la representación y operación con números enteros y reales en sistemas binarios.

Representación de Enteros: Notaciones

El estudio de los enteros en computación se divide en diversas modalidades representativas para gestionar tanto la magnitud como el signo:

  • Sin signo: Utilizado exclusivamente para números positivos y el cero.
  • Signo y magnitud: Reserva un bit específico para determinar la polaridad del número.
  • Complemento a uno (ca1ca1): Basado en el complemento a la base 1-1.
  • Complemento a dos (ca2ca2): Basado en el complemento a la base.

Enteros Sin Signo

Esta representación utiliza la totalidad de los bits para expresar el valor numérico.

  • Rango de Representación: Para un número de nn bits, el rango se define desde 00 hasta +2n1+2^n - 1.
  • Ejemplos de Rango:
    • Ejemplo 1 (n=8n = 8): El rango es de 00 a +281+2^8 - 1, lo que equivale a un intervalo de [0,255][0, 255].
    • Ejemplo 2 (n=32n = 32): El rango es de 00 a +2321+2^{32} - 1, resultando en el intervalo de [0,4.294.967.295][0, 4.294.967.295].

Notación de Signo y Magnitud

En este formato, la posición binaria más significativa (el bit más a la izquierda) se dedica exclusivamente a indicar el signo del número.

  • Convención del Bit de Signo:
    • 00: Indica que el número es positivo.
    • 11: Indica que el número es negativo.
  • Rango de Representación: Dado un número de nn bits, el rango abarca desde 2n11-2^{n-1}-1 hasta +2n11+2^{n-1}-1.
  • Ejemplo de Rango (n=8n = 8): El rango es de 2811-2^{8-1}-1 a +2811+2^{8-1}-1, es decir, de 127-127 a +127+127.
  • Representaciones para n=4n = 4 (Ejemplo Completo):
    • 0000=+00000 = +0 y 1000=01000 = -0 (Existe una doble representación del cero).
    • 0001=+10001 = +1 y 1001=11001 = -1
    • 0010=+20010 = +2 y 1010=21010 = -2
    • 0011=+30011 = +3 y 1011=31011 = -3
    • 0100=+40100 = +4 y 1100=41100 = -4
    • 0101=+50101 = +5 y 1101=51101 = -5
    • 0110=+60110 = +6 y 1110=61110 = -6
    • 0111=+70111 = +7 y 1111=71111 = -7

Teoría del Complemento

Existen dos modalidades principales para trabajar con complementos en cualquier base:

  1. Complemento a la base 1-1.
  2. Complemento a la base.
  • Ejemplo en Base 10:
    • Complemento a 9 (Base-1): Para un número negativo de dos dígitos (ej. 53-53), se resta de la cifra más alta representable con esa cantidad de posiciones (9999). Por tanto, 9953=4699 - 53 = 46.
    • Complemento a 10 (Base): Se obtiene restando el número al total de combinaciones posibles (100100 para dos dígitos). Por tanto, 10053=47100 - 53 = 47.
    • Regla General para Positivos: En ambas modalidades, el complemento de un número positivo es el mismo número.

Complemento a Uno (ca1ca1)

  • Definición: Es la aplicación del complemento a la base 1-1 en el sistema binario (base 2).
  • Regla de Obtención:
    • Para un número positivo: Se mantiene igual.
    • Para un número negativo: Se intercambian todos los bits de la representación (los ceros por unos y los unos por ceros).
  • Ejemplo de Aplicación:
    • ca1(+1101012)=1101012ca1(+110101_2) = 110101_2
    • ca1(1101012)=0010102ca1(-110101_2) = 001010_2

Complemento a Dos (ca2ca2)

  • Definición: Es la aplicación del complemento a la base en el sistema binario.
  • Regla de Obtención:
    • Para un número positivo: Se mantiene igual.
    • Para un número negativo: Se realiza el ca1ca1 del número y se le suma 11 en la posición menos significativa (LSBLSB).
  • Ejemplo de Aplicación:
    • Para un número negativo 1101012-110101_2:
      1. Obtener ca1ca1: 0010102001010_2
      2. Sumar 11: 0010102+1=0010112001010_2 + 1 = 001011_2
      3. Resultado: ca2(1101012)=0010112ca2(-110101_2) = 001011_2
  • Rango y Capacidad: Con nn bits (incluyendo el de signo):
    • Permite 2n2^n combinaciones distintas.
    • Rango: 2n1-2^{n-1} hasta +2n11+2^{n-1} - 1.
    • Ejemplo para n=4n = 4: Rango de 8-8 a +7+7. En este sistema, solo hay una representación para el cero (00000000).

Tabla de Valores en ca2ca2 (para n=4n = 4)

PositivoBinarioNegativoBinario
+0+0000000008-810001000
+1+1000100017-710011001
+2+2001000106-610101010
+3+3001100115-510111011
+4+4010001004-411001100
+5+5010101013-311011101
+6+6011001102-211101110
+7+7011101111-111111111

Operaciones de Suma y Desbordamiento (Overflow)

  • Suma: Se ejecuta de forma idéntica al sistema decimal.
  • Definición de Overflow: Ocurre cuando se suma números de nn bits y el resultado excede la capacidad de representación de esos nn bits. Esto se identifica frecuentemente por un acarreo en el bit más significativo que no puede ser procesado.
  • Ejemplo de Suma Binaria (Sin signo):
    • Sumandos: 100002+00111210000_2 + 00111_2
    • Resultado: 10111210111_2

Resta Utilizando Complemento a Uno (ca1ca1)

La resta se transforma en una suma de los complementos.

  • Procedimiento:
    1. Representar los sumandos en notación ca1ca1.
    2. Si existe un acarreo en la posición más significativa al sumar, este se debe sumar a la posición menos significativa del resultado intermedio (proceso conocido como acarreo circular).
  • Ejemplo (Calcular 371937 - 19):
    • 37=100101237 = 100101_2
    • 19=10011219 = 10011_2
    • ca1(19)=1011002ca1(-19) = 101100_2 (Asumiendo longitud de 66 bits).
    • Suma: 1001012+1011002=10100012100101_2 + 101100_2 = 1010001_2 (Hay acarreo).
    • Ajuste: 0100012+1=0100102010001_2 + 1 = 010010_2

Resta Utilizando Complemento a Dos (ca2ca2)

Es el método estándar en arquitecturas modernas.

  • Procedimiento:
    1. Representar los sumandos en ca2ca2.
    2. Si existe acarreo en la posición más significativa, este simplemente se descarta.
  • Ejemplo (Calcular 371937 - 19):
    • 37=100101237 = 100101_2
    • ca2(19)=1011012ca2(-19) = 101101_2
    • Suma: 1001012+1011012=10100102100101_2 + 101101_2 = 1010010_2
    • Resultado final (descartando acarreo): 0100102010010_2

Análisis de Casos y Overflow en ca2ca2 con Bit de Signo

Considérese los ejemplos de restas con las cifras 13=1101213 = 1101_2 y 20=10100220 = 10100_2:

  • Interpretación del Resultado:

    • Si es positivo: El valor es directo.
    • Si es negativo: El resultado está complementado (ca1ca1 o ca2ca2). Para conocer su valor absoluto, se debe aplicar nuevamente el complemento al resultado.
  • Reglas de Overflow basadas en Acarreo:

    • Sumar dos positivos: Si hay acarreo en la posición más significativa y el bit de signo resultante es 11 (negativo), hay Overflow.
    • Sumar un positivo y un negativo:
      • Sin acarreo en el bit más significativo: Resultado negativo.
      • Con acarreo en el bit más significativo: Resultado positivo.
    • Sumar dos negativos: Si no existe acarreo en la posición más significativa y el bit de signo resultante es 00 (positivo), hay Overflow.
  • Corrección de Overflow (Caso 2013-20 - 13): Si el número de bits es insuficiente, se debe aumentar la representación. Por ejemplo, usando 66 bits:

    • 13=001101213 = 001101_2; 20=010100220 = 010100_2
    • ca2(20)=1011002ca2(-20) = 101100_2; ca2(13)=1100112ca2(-13) = 110011_2
    • Suma: 1011002+1100112=10111112101100_2 + 110011_2 = 1011111_2 (Se descarta el acarreo final, el resultado es el valor en $ca2$).

Multiplicación y División Binaria de Enteros

  • Multiplicación: Sigue la misma lógica que el sistema decimal.
    • Ejemplo: Multiplicar 10111210111_2 (multiplicando) por 1012101_2 (multiplicador):
      • 101112×110111_2 \times 1 = 1011110111
      • 101112×010111_2 \times 0 = 0000000000 (desplazado)
      • 101112×110111_2 \times 1 = 1011110111 (desplazado)
      • Suma total: 111001121110011_2
  • División: Se realiza aplicando restas sucesivas mediante la suma del divisor en notación ca2ca2.
    • Ejemplo: Dividendo 1011102101110_2 y Divisor 1012101_2.
    • Se utiliza el ca2ca2 del divisor (ca2(1012)=0112ca2(101_2) = 011_2) para las operaciones internas.

Números Reales y Reglas de Signo

  • Suma y Resta de Reales:
    • Las reglas de enteros son aplicables.
    • Es imperativo alinear la coma binaria.
    • Se requiere igualar la cantidad de posiciones tanto a la izquierda como a la derecha de la coma mediante ceros significativos.
  • Multiplicación de Reales: La posición de la coma en el resultado se determina sumando la cantidad de posiciones decimales (post-coma) de ambos operandos.
  • División de Reales: Al igual que en decimal, se multiplican ambos términos por la base hasta eliminar las comas antes de proceder con el algoritmo de división de enteros.
  • Operaciones con Signo: Siguen las leyes convencionales del álgebra decimal:
    • El producto o cociente es positivo si ambos signos son iguales.
    • A(B)=A+BA - (-B) = A + B.

Bibliografía de Referencia

  • Null, L. y Lobur, J.: The Essentials of Computer Organization and Architecture - Capítulo 2, Sección 2.4.
  • Quiroga, P.: Arquitectura de Computadoras - Capítulo 4, Secciones 4.2.