miércoles, 8 de febrero de 2012

SISTEMAS NUMERICOS

Los sistemas numericos se definen como reglas o símbolos que nos sirven para mostrar o diagramar cifras o cantidades.En programacion se utiliza 4 sistemas que son: 
-Sistema Binario (Base 2)
-Sistema Octal (Base 8)
-Sistema Decimal (Base 10)
-Sistema Hexadecimal (Base 16)

Base Decimal (Base 10)
Es la base a la que estamos acostumbrados siempre.En esta base contamos con 10 digitos 0,1,2,3,4,5,6,7,8,9. El sistema de numeración decimal (base decimal) es un sistema de numeración posicional. Un sistema de numeracion posicional es aquel en el que un número viene dado por una cadena de dígitos, estando afectado cada uno de estos dígitos por un factor de escala que depende de la posición que ocupa el dígito dentro de la cadena dada. Es decir, que el dígito 9, valdrá 9 si está al final de la cadena, en la posición reservada para las unidades; valdrá 90 si el dígito se encuentra en la posición reservada para las decenas (2ª posición de derecha a izquierda); valdrá 900 si el dígito se encuentra en la posición reservada para las centenas; etc, etc... por qué tenemos como sistema de numeración usual al sistema decimal, por qué es el más usado por todo tipo de gente, a qué se debe que en todo el mundo sea el sistema utilizado por las personas (ya veremos que las máquinas no usan el sistema decimal, sino el binario). Pues es bien sencillo: Porque tenemos 10 dedos.

Sistema Binario (Base 2) 
 En esta base solo se cuenta con 2 digitos, 0 y 1. Este sistema mide la electricidad debido a que toda la informacion que se manipula en un ordenador se mide mediante una señal electrica, si se tiene una señal electrica alta se simboliza con el numero 1, y si se tiene una señal electrica baja se simboliza con el numero 0.
El factor de escala en esta base son las potencias de 2 q afectan al digito dependiendo de su ubicacion en la cadena numerica. 

Ejemplo:

El número 10100101 se puede traducir a base 10 como:
10100101 = (1*2^7)+(0*2^6)+(1*2^5)+(0*2^4)+(0*2^3)+(1*2^2)+(0*2^1)+(1*2^0).
O lo que es lo mismo: 10100101 (base 2) = 128+0+32+0+0+4+0+1 (base 10) = 165 (base 10)



Base Hexadecimal (Base 16)

Esta base surge para compactar la informacion binaria.

Se utiliza un dígito hexadecimal para representar una cadena de 4 dígitos binarios. Teniendo en cuenta que con 4 dígitos binarios podemos representar 16 números diferentes: 0,1,10,11,100,101,110,111,1000,1001,1010, etc... ...Teniendo en cuenta esto, un dígito hexadecimal tiene que poder tomar 16 valores diferentes.
Para la base 10, tenemos 10 dígitos diferentes: del 0 al 9; para la base 2, nos servimos de dos de esos dígitos que ya teníamos para la base 10: el 0 y el 1.
Pero en la base 16, que tenemos 16 dígitos diferentes, no podemos valernos sólo de los dígitos de la base decimal, ya que sólo hay 10 diferentes, y necesitamos 16.
La solución es utilizar letras para representar los 6 dígitos que nos faltan. Tenemos entonces que los dígitos hexadecimales son: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E y F. A equivale a 10 en base 10. B equivale a 11 en base 10. C equivale a 12 en base 10. D equivale a 13 en base 10. E equivale a 14 en base 10. F equivale a 15 en base 10.
Del mismo modo que en la base 10, el último dígito es el 9; en la base 2, el último dígito es el 1; en la base 16, el último dígito será F.
Si sumamos a F una unidad, obtendremos el número 10 (base hexadecimal). Este número 10h (se utiliza el sufijo 'h' para indicar que se trabaja con base hexadecimal, al igual que el sufijo 'b' indica que se está trabajando con base binaria) equivale a 16 en base 10.
El factor de escala en esta base, son las potencias de 16 que afectan a un dígito dado dependiendo de su posición en la cadena numérica. De forma similar que al hablar de la base binaria, al decir potencias de 16, me estoy refiriendo a potencias de 16 (en base 10).
Es decir, para obtener la traducción de ese número en base 16 a su valor en base 10, utilizamos las potencias de 16 mencionadas. Estas potencias de 16 en base 10, serían potencias de 10 en base 16. Es decir, el número 10 en base 16 equivale al número 16 en base 10.


Ejemplo :

El número AF34h se puede traducir a base 10 como:
AF34 (base 16) = (10*16^3)+(15*16^2)+(3*16^1)+(4*16^0) (base 10).
O lo que es lo mismo: AF34 = (10*4096)+(15*256)+(3*16)+4 = 40960+3840+48+4 = 44852



Sistema Octal (Base 2)
Al igual que la base hexadecimal, se utiliza para compactar información binaria, pero en este caso, la compactación es menor, de tal manera que casi no se usa. Mientras que en la base hexadecimal con un sólo dígito se puede representar una cadena de 4 dígitos binarios, en la base octal un dígito sólo puede representar 3 dígitos binarios. Los dígitos posibles para la base octal, evidentemente, son los que van del 0 al 7.


Por ejemplo el número 18732 en base decimal, que es 492C en base hexadecimal, y 100100100101100 en base 2.
Veamos cómo se llega de uno de esos números a otro, al cambiar de base.
* Cambio de base 2 a base 10. 100100100101100b = (1*2^14)+(1*2^11)+(1*2^8)+(1*2^5)+(1*2^3)+(1*2^2)= = 16384+2048+256+32+8+4 = 18732 (base 10).

















No hay comentarios:

Publicar un comentario