5.4 Sistemas numéricos complementarios.


Los números complementarios son la base de la aritmética complementaria, un método de gran utilidad que se emplea en los circuitos digitales para realizar operaciones aritméticas con números con signo.

Un número con signo N = ± (an-1...a0a-1...a-m)r en el formato de magnitud y signo se expresa como N = (san-1...sa0a-1...sa-m)rsm donde s = 0 si N es positivo y s = r-1 si N es negativo.

Ejemplo 15.

Determinar el código de magnitud y signo de N = - (13)10 en binario y decimal.

En binario: N = - (13)10 = - (1101)2 = (1,1101)2sm

En decimal: N = - (13)10 = (9,13)10sm

En los sistemas complementarios, los números positivos se expresan de la misma manera que los números con magnitud y signo, mientras que los números negativos se representan como el complemento del número positivo correspondiente.

El complemento a una base y el complemento disminuido a una base son sistemas numéricos importantes que se analizarán a continuación.

5.4.1. Complementos a una base.

El complemento a una base [N]r de un número (N)r se define como:

[N]r = rn- (N)r

donde n es el número de dígitos de (N)r.

El número positivo más grande que puede representarse es rn- 1-1, mientras el número negativo más pequeño es - rn- 1.

El complemento a dos es un caso especial del complemento a una base para números binarios y está dado por:

[N]2 = 2n- (N)2

El complemento a dos es el formato de uso más frecuente para los números con signo en circuitos digitales.

Ejemplo 16.

Determine el complemento a dos de (N)2 = (01100101)2.

[N]2 = 28 - (01100101)2

= (100000000)2 - (01100101)2

= (10011011)2

Ejemplo 17.

Determinar el complemento a dos de (N)2 = (11010100)2 y verificar que puede servir para representar - (N)2 demostrando que (N)2 + [N]2 = 0.

[N]2 = 28 - (11010100)2

= (00101100)2

para verificar que [N]2 representa a - (N)2, sumamos (N)2 + [N]2:



                        11010100
                     + 00101100
                        -------------
acarreo --->     1 00000000

si descartamos el bit de acarreo, tenemos que (N)2 + [N]2=(00000000)2. Por tanto podemos utilizar [N]2 para representar -(N)2.

Ejemplo 18.

Determinar el complemento a 10 de (N)10 = (40960)10.

[N]10 = 105 - (40960)10

= (59040)10

Obsérvese que se mantienen los cinco dígitos en el resultado.

Se presenta a continuación un algoritmo para hallar [N]r dado (N)r, sin demostración. El algoritmo dice así: Reemplazamos cada dígito ak de (N)r, por (r- 1) - ak y después sumamos 1 al resultado.

Ejemplo 19.

Halle el complemento a dos de N = (01100101)2.

[N]r = 10011010 + 1 = (10011011)2.

Ejemplo 20.

Determine el complemento a base diez de (40960)10.

N = 40960

[N]10 = (59039 + 1)10

[N]10 = (59040)10

Ejemplo 21.

Dado (N)2 = (1100101)2 determinar las representaciones de ± (N)2 en el sistema numérico de complemento a dos para n = 8.

+ (N)2 = (0,1100101)2ms.

- (N)2 = [+ (N)2]2

= 28 - (0,1100101)2

= (100000000)2 - (0,1100101)2

= (1,0011011)

Ejemplo 22.

Determinar las representaciones en el sistema numérico de complemento a 2 de ± (110101)2 para n = 8.

+ (110101)2 = (0,0110101)2ms

- (110101)2 = [110101]2

= 28 - (110101)2

=(100000000) - (110101)2

=(1,1001011)2ms

Ejemplo 23.

Determine el número decimal representado por N = (1,1111010)2ms.

Por el bit de signo sabemos que N es un número negativo. Así, se determina la magnitud de N calculando su complemento a 2.

N = (1,1111010)2ms.

= - [1,1111010]2.

= - (28 - (1,1111010)2)

= - (0,0000110)2ms.

= - (6)10.