Translate

viernes, 12 de diciembre de 2008

¿Con qúe sistema numérico trabajan los PIC's?

Los PIC por defecto interpretan los números en notación binaria, ojo hablo de la parte física o del hardware. Por otra parte los compiladores generalmente soportan 3 sistemas numéricos, decimal, hexadecimal y binario. 

Esta tabla representa los valores de 0 a 20 en las tres notaciones soportadas por los compiladores:

Yo prefiero usar siempre el sistema decimal en cualquier compilador, pero popularmente se usa el sistema hexadecimal o el binario en su defecto.

Operaciones Básicas.

Las operaciones básicas que se pueden hacer con estos sistemas son: sumar, restar multiplicar y dividir, como nuestro PIC usa la notación binaria expliquemos un poco estas operaciones.

  Suma Binaria

Recordemos que le sistema binario se compone solo de 1's y 0's por lo tanto la suma binaria se realiza con las siguientes bases:

 0+0=0

 0+1=1

 1+0=1

 1+1=0 con un bit de acarreo = 10

La suma de dígitos decimales se lleva a cabo columna a columna -de derecha a izquierda-llevando los bits de acarreo, por ejemplo:

  1010                        1011

+                           +

 0101                        0111

-----------           --------------

 1111                       10010

En la primer suma -de izquierda a derecha- el resultado es igual a 1111 binario, 15decimal o F Hexadecimal. Este resultado se logra de sumar las columnas de derecha a izquierda y como en todas es 1+0 o 0+1 el resultado siempre es 1.

En cambio en la segunda suma el resultado es 10010 binario o 18 Decimal, 12 hexadecimal; ya que la primer columna es 1+1 y genera un cero el cual se baja al resultado, pero lleva un bit de acarreo que se le asigna a la siguiente columna; por lo tanto sumamos el bit de acarreo a la fila superior teniendo así 1+1=0 el bit de acarreo lo asignamos a la siguiente columna, pero aun nos falta sumar el resultado a la fila inferior entonces tenemos 0+1=1 el cual se baja al resultado. En la tercer columna tenemos el bit de acarreo al cual debemos sumarle el valor de la fila superior, entonces tenemos 1+0=1 y este uno se le suma al valor de la fila inferior que es un 1: 1+1=0 el cual se baja al resultado y se genera otro bit de acarreo para la ultima columna. Tenemos así pues el bit de acarreo mas el valor de la fila superior: 1+1=0 ponemos el bit de acarreo a la columna siguiente y el cero lo sumamos a la fila inferior: 0+0=0 el cual se pone como resultado. Por ultimo bajamos el bit de acarreo ya que no hay con que sumar o se interpreta como un cero y ponemos el 1 en el resultado. Teniendo así 10010 como resultado final.

 La Resta Binaria

Para poder realizar l resta binaria es necesario definir un concepto, los numeros negativos. En notación binaria el signo de un numero esta dado por el Bit más Significativo(MSB por sus siglas en ingles) asi pues en una notación binaria de 4 bits el signo estara dado por el bit4:

  0011----->+3

  0010---->+2

  0001---->+1

  0000---->0

  11111---->-1

  11110--->-2

  11101--->-3

Para obtener la notación negativa de un número, basta con aplicar el complemento al número y sumarle 1, el complemento de un numero es invertir los 1's por 0's y viceversa. 

Asi pues el complemento de 0110 sera 1001, y para obtener su negativo se le suma un 1 a su complemento. Toda esta operacion es conocida como complemento de dos o complemento 2's.

Por ejemplo: sacar el numero negativo o complemento a 2 de +7 seria de la siguiente manera:

   0111 ------> +7

  1000 ------> Complemento de +7

+0001 -----> Sumamos 1 al complemento

---------------

 1001 ------> -7

Una vez que obtenemos el numero negativo podemos realizar la resta, que en realidad se convierte en una suma. Por ejemplo: realizar la resta 10 - 4 = 6.

Obtenemos el complemento de 2 de 4 decimal

  0100 -----> +4

  1011 -----> complemeto de +4

 +     1 -----> sumamos 1 al complemento

--------------------

 1100 ------> complemento a 2 de +4 = -4

Ahora realizamos la suma entre 10 y -4:

    1010        ---------> 10 binario

+ 1100        ---------> -4 binario

------------------

   0110       ---------> 6 decimal

Hay que notar que el bit de acarreo no es mostrado esta vez, pues es notación a 4 bits y un quinto bit no es soportado.

  La multiplicacion binaria

La multiplicacion binaria es muy sencilla pues se rige de los siguientes principios:

  0*0=0

 0*1=0

 1*0=0

 1*1=1

Ademas de que la multiplicacion lleva la misa sintaxis que la multiplicacion decimal por lo tanto se tiene que multiplicar 5x2=10 en binario seria:

         0101   ----------> 5 decimal

     x  0010  ----------> 2 decimal

----------------

          0000

        0101

    0000

 0000

---------------

 0001010     --------> 10 decimal

Es necesario acomodar correctamente las filas para que el resultado sea correcto.

  La División Binaria

Afortunadamente la división binaria es identica ala division decimal salvo que se efectua con solo 1's y 0's.

Un ejemplo es dividir 20/2=10:

                

Como verán es prácticamente lo mismo solo que con ceros y unos. El resultado final fue 1010 que corresponde a 10 decimal.

1 comentario:

  1. Maaaax, te rifas te rifas!!! me acuerdo ke a mi me costaba mucho trabajo dividir mmmm... k tiempos aquellos... bueno sigue asi, esta muy chido tu blog totalmente APP para la gente distraida como yo, y pues pones cosas muy buenas....

    ResponderEliminar