A_Complemento de un número - jospicant/IceStudio GitHub Wiki

Complemento de un número

El complemento de un número en el mundo digital se usa para simplificar las operaciones de resta y manipulaciones lógicas. Tenemos dos tipos de complementos para cada sistema de base-r:

  • Complemento "Base r": complemento "r"
  • Complemento de "Base disminuido (r-1)": complemento "(r-1)"

Complemento "Base disminuida (r-1)"

Dado un número N de base r que tiene n dígitos, el complemento (r-1) del número N se puede calcular pensando de la siguiente forma lógica ( lo vemos con varios ejemplos):

Números decimales (base r = 10 y base disminuida r-1 = 9 ):

Llamaremos Ca9(N) ( Complemento a 9 de un número N):

Ca9(997)= 2  (Como tiene tres dígitos, sería lo que le falta hasta llegar a 999)

Ca9(57)= 42 (Como tiene dos dígitos, sería lo que le falta hasta llegar a 99)

Ca9(3)= 6 ( Como tiene 1 dígito, sería lo que le falta hasta llegar a 9.

Números binarios (base r =2 y base disminuida r-1 = 2):

LLamaremos Ca1(N) (Complemento a 1 de un número binario N):

Ca1(b100)=b011  El Ca1 del número 4 en binario "b011", formado por tres bits  
                es lo que le falta al número 4, para llegar al número binario  
                b111 (7), por lo que el resultado será 3 en binario con tres  
                dígitos ( b011).
Ca1(b1010)=b0101 El Ca1 del número binario 10 (b1010), formado por 4 bits  
                 es lo que le falta para llegar al número 15 (b1111), por lo  
                 cual el resultado será 5 (b0101) usando 4 bits.  

El Ca1(N) se puede calcular de forma inmediata simplemente cambiando los 1's  
por 0's y viceversa.  

Complemento "Base r "

El complemento r de un número N con n dígitos podemos definirlo como el complemento (r-1) de un número + 1 ( lo veremos con unos ejemplos) :

 Ejemplos para números decimales:
 
 Ca9(997)=2;
 Ca10(997)=2+1=3; podemos calcular también directamente pensando que es lo que  
                  le falta a 997 para llegar a 1000.
 
 Ca9(57)=42+1 =43; lo que le falta hasta llegar a 100.
 
 Ca9(3)=6+1=7; lo que le falta para llegar a 10.
 
Ejemplos para números binarios:

Número 11 (b1011):
Ca1(b1011)=b0100; a 11 le faltan 4 para llegar a 15  (b1111).
Ca2(b1011)=b0101; a 11 le faltan 5 para llegar a 16 (b10000).

Número 4 (b100):
Ca1(b100)=b011;  a 4 le faltan 3 para llegar a 7  (b111).
Ca2(b100)=b100;  a 4 le faltan 4 para llegar a 8 (b1000).

El complemento del complemento nos devolverá al número original

Módulo Ca1 en IceStudio

En la siguiente figura se muestra el módulo realizado para calcular el Ca1 de un número binario de 8 bits:

Ca1 binario 8 bits

Mostramos aquí un ejemplo usando dicho módulo de Ca1:

Ejemplo Ca1

Módulo Ca2 en IceStudio

Igualmente se crea un módulo para realizar el Ca2 ( Ca2 = Ca1+1 ) de un número binario de 8 bits:

Ca2 Module

Mostramos un ejemplo de dicho módulo:

Ejemplo Ca2

Podemos encontrar los diferentes módulos realizados para IceStudio en:

Modulos Maths
Ejemplos Maths