Sistemas de Numeración
 

A diario usamos el sistema decimal para representar números. Este sistema utiliza los dígitos decimales o símbolos: 0,1,2,3,4,5,6,7,8,9. Podríamos usar otro sistema de numeración pero para nuestra conveniencia usamos el decimal.

Un sistema de numeración puede ser definido como un medio que se utiliza para representar una cantidad usando símbolos. La cantidad de símbolos distintos que se emplean se conoce como la base del sistema. El sistema binario contiene dos símbolos: 0 y 1, por lo tanto su base es igual a dos. Además cada símbolo en un número posee un valor posicional. Por ejemplo, considere lo que significa el número 283

283 = 2*100 + 8*10 * 3
Esto significa que cada dígito del número ó símbolo se multiplica por 10 elevado a la potencia correspondiente a la posición de dicho dígito. Ejemplo:
5369 = 5*103 + 3*102 + 6*101 + 9*100
Lo anterior también se aplica para un número representado en otra base. El número 110102 representa el número 2610 en base decimal.
110102 = 1*24 + 1*23 + 0*22 + 1*21 + 0*20
= 16 + 8 + 0 + 2 + 0
= 2610
En general, un número dm dm-1 . . . . d0 en base b representa
en decimal.

Ejemplo: Convertir 1378 a Decimal.

1378 = 1*82 + 3*81 + 7*80
= 64 + 24 + 7 = 9510
 
Conversión de Decimal a cualquier Base

Dado un número en decimal queremos obtener su representación en base b. Usando la regla de Horner podemos expresar un número Num de la siguiente manera:

Num10 = d0 b0 + d1 b1 + d2b2 + . . . + dn-2 bn-2 + dn-1 bn-1
Num10 = d0 + d1 b1 + d2b2+ . . . + dn-2 bn-2 + dn-1 bn-1
Num10 = d0 + b*( d1 + d2b1+ . . . + dn-2 bn-3 + dn-1 bn-2)
Num10 = d0 + b*( d1 + b*( d2 + . . . + dn-2 bn-4 + dn-1 bn-3))
Num10 = d0 + b*( d1 + b*( d2 + b*( d3 +. . . + b*( dn-2 + dn-1 b)...)))
Reescribimos Num10  como
Num10 = d0 + b* q1   donde q1= d1 + b*( d2 + b*( d3 +. . . + b*( dn-2 + dn-1 b)...)))
Para obtener  q1 basta con usar división entera, y para obtener  d usamos la función módulo.
q1  = Num10 /  b         (división entera)  y
d0 = Num10  mod  b   (módulo)
q1 a su vez es un número expresable como  q1 = d1 + b* q , de aqui obtenemos el siguiente algoritmo de conversión.

Algoritmo:
 i := 0
Mientras Num10 <> 0 hacer
        di := Num10  módulo  b
        Num10 = Num10  / b
        i:= i+1
 
 

Ejercicios:

Convertir 5010 a base 3:

Num10  = 50
d0 = (50 módulo 3) = 2
Num10  = 50 div 3 = 16

d1 = (16 módulo 3) = 1
Num10  = 16 div 3 = 5

d2 = (5 módulo 3) = 2
Num10  = 5 div 3 = 1

d3 = (1 módulo 3) = 1
Num10  = 1 div 3 = 0

5010 = 12123

       
       

      Convertir 7110 a base 8  (Octal)
      Para convertir un número decimal a una base que es potencia de dos (4,8,16,etc.) , se pueden usar dos métodos distintos. Un método es utilizando el algoritmo especificado anteriormente y la otra alternativa es convertir el número a binario (base 2) y luego agrupar los dígitos dependiendo de la base a la cual se quiera llevar el número (22, 23, 24,etc.)
       
      Num10  = 71
      d0 = (71 módulo 8) = 7 d0 = (71 módulo 2) = 1
      Num10  = 71 div 8 = 8 Num10  = 71 div 2 = 35
      d1 = (8 módulo 8) = 0 d1 = (35 módulo 2) = 1
      Num10  = 8 div 8 = 1 Num10  = 35 div 2 = 17
      d2 = (1 módulo 8) = 1 d2 = (17 módulo 2) = 1
      Num10  = 1 div 8 = 0 Num10  = 17 div 2 = 8
      d3 = (8 módulo 2) = 0
      Num10  = 8 div 2 = 4
      d4 = (4 módulo 2) = 0
      Num10  = 4 div 2 = 2
      d5 = (2 módulo 2) = 0
      Num10  = 2 div 2 = 1
      d6 = (1 módulo 2) = 1
      Num10  = 1 div 2 = 0
      7110 = 1078 7110 = 1 000 111 2 agrupamos los dígitos en grupos de tres dígitos  binarios.

       
      7110= 001 000 111
        1 0 78

      Convertir 7110 a base 16  (Hexadecimal)
      Los símbolos que se utilizan en esta base son 0,1,2,...,9 y las letras a,b,c,d,e,f.
      Si disponemos de la representación del número decimal 71 en binario podemos hacer la conversión simplemente reagrupando los dígitos binarios en grupos de 4.
       
       
      7110= 0100 0111
        4 716

       

      Representación de Números Negativos

      Signo-Magnitud

Una alternativa para representar números positivos y negativos es usando la representación en Signo y Magnitud. En una palabra de n bits, los n-1 bits de la derecha representan la magnitud del entero, y el bit más a la izquierda representa el signo.
 
Signo Magnitud
Esta representación presenta varias limitaciones. Una de ellas es que la suma y la resta deben tener en cuenta tanto los signos como susmagnitudes relativas para llevar a cabo la operación. Otra limitación es que hay dos representaciones del número 0.
 
 

Representación en Complemento a Dos

Esta representación utiliza el bit más significativos (izquierda) como bit de signo, facilitando la comprobación de si el entero es positivo o negativo. Lo que difiera con la representación de Signo-Magnitud es la forma de interpretar el resto de los bits.

Consideremos un entero de n bits, A representado en Complemento a Dos. Si A es positivo, el bit de signo, a0, es cero. Los restantes bits representan la magnitud del número de la misma forma que en la representación Signo-Magnitud.

El número cero se representa como positivo y por lo tanto tiene un bit de signo 0 y una magnitud de 0.

Para un número negativo A, el bit de signo, a0 es 1. Los n-1 bits restantes pueden tomar cualquiera de las 2n-1 combinaciones. Por lo tanto el rango de números enteros negativos que pueden ser representados van desde -1 hasta -2n-1. Una asignación conveniente de valores es hacer que los bits an-1an-2...a1a0 sean iguales al número positivo 2n-1+A



 
 
 
0000 0000 0000 0000 0000 0000 0000 0000  = 0
0000 0000 0000 0000 0000 0000 0000 0001  = 1
0000 0000 0000 0000 0000 0000 0000 0010  = 2
. . . .
0111 1111 1111 1111 1111 1111 1111 1110  = 2.147.483.646
0111 1111 1111 1111 1111 1111 1111 1111  = 2.147.483.647
1000 0000 0000 0000 0000 0000 0000 0000  = -2.147.483.648
. . . .
1111 1111 1111 1111 1111 1111 1111 1111  = -1

Algoritmo para Complemento a Dos Propiedades del complemento a Dos Ejemplo: Dado el número 10012 en Complemento a Dos usando 4 bits, qué número representa en decimal ?
 
 
1001  = -24 + 1*20 = -16 + 1 = -15

Ejemplo: Cuál es la representación de -2 usando Complemento a Dos con 32 bits?
 
2 =  0000 0000 0000 0000 0000 0000 0000 0010
 1111 1111 1111 1111 1111 1111 1111 1101 +
 0000 0000 0000 0000 0000 0000 0000 0001 =
-2 =  1111 1111 1111 1111 1111 1111 1111 1110

 
Ejemplo: Cuál es la representación de -17 usando Complemento a Dos con 32 bits?
 
17 =  0000 0000 0000 0000 0000 0000 0001 0001
 1111 1111 1111 1111 1111 1111 1110 1110 +
 0000 0000 0000 0000 0000 0000 0000 0001 =
-17 =  1111 1111 1111 1111 1111 1111 1110 1111
Ejercicios Propuestos:

Completar la siguiente tabla de conversiones entre bases
 
                 Base
Número
2 3 5 8 16
13910          
51210          
1063010          
2597810          

         
      Completar la siguiente tabla de conversiones entre bases
       
                                  Base
      Número
      2 8 16
      5f16      
      1658      
      ffffffa516      
      011101012      
      01112203      
         
      Representar los siguientes números en Complemento a Dos con 16 bits
         
      25610  
      -25610  
      -94510  
       
      ¿A qué número decimal corresponden las siguientes representaciones en Complemento a Dos de 32 bits?
       
      ffff fffa16  
      0000 002716  

 
  Siguiente: Punto Flotante