domingo, 13 de marzo de 2011

Introducción al sistema binario

En esta entrada se ofrece una breve introducción al sistema numérico binario a modo de anexo y como complemento a los demas tutoriales del blog.

Seguramente sabréis asi de entrada, que el sistema binario es ese de los 0 y 1 y esas cosas tan extrañas que vienen del mundo de la microelectrónica... Pues si es eso lo que pensais, que es un mundo extraño, empezad a deshaceros de esa idea de vuestra cabeza, por que no es más ni menos que otro sistema numérico más, incluso más sencillo que el que usamos habitualmente.

En el sistema decimal (que es el que usamos de forma cotidiana), el lugar que ocupa cada dígito es significativo (importante) pues representa el “peso” de éste (su valor). Por ejemplo cuando decimos 1128 estamos diciendo que la posición de los millares pesa 1 (1x1000), que la posición de las centenas pesa 1 (1x100), que la posición de las decenas pesa 2 (2x10) y la de las unidades pesa 8 (8x1). Decimal quiere decir “en base 10” y esto puede expresarse matemáticamente como 10 elevado a la posición que ocupa cada dígito (según su significado o "importancia"), dicho esto, con nuestro número, en realidad estabamos haciendo los siguientes calculos:

Peso de las Unidades = 10 elevado a 0 = 1
“       de las decenas   = 10 elevado a 1 = 10
“       de las centenas  = 10 elevado a 2 = 100
“       de los millares    = 10 elevado a 3 = 1000
Etc.

En esta tabla vemos como el número al que se eleva la base, indica la posición que ocupa. Por ejemplo el “0” es la primera posición del número empezando por la derecha, el “1” es la siguiente (recorriéndolo de derecha a izquierda) y asi sucesivamente… y su valor o peso, es el resultado de elevar la base (que en decimal es 10) al valor de la posición que ocupa. La suma total de todos los resultados intermedios nos dan el número que queramos representar, por ejemplo el 1128.

Si traspasamos esto a la lógica binaria que también tiene un valor de peso asociado, tenemos que

Para una “palabra” o número de 8 bits (1 byte):

Peso del primer digito  = 2  elevado a 0 = 1 (Atención aquí: empezamos por 0 no por 1)
“       del 2º digito         = 2 elevado a 1 = 2
“       del 3er digito       = 2 elevado a 2 = 4
“       del 4º                  = 2 elevado a 3 = 8
“       del 5º                  = 2 elevado a 4 = 16
“       del 6º                  = 2 elevado a 5 = 32
“       del 7º                  = 2 elevado a 6 = 64
“       del 8º                  = 2 elevado a 7 = 128

Al igual que en decimal comenzabamos desde los pesos menores, de derecha a izquierda y empezando desde la posición 0, aquí procederemos de la misma forma. Sin embargo, en lugar de ser 10 la base a la que se elevan, aquí es 2. Observad que 8 digitos se expresan de 0 a 7 posiciones y no de 1 a 8. En resumen, los pesos de un dígito binario son (de derecha a izquierda) 1, 2, 4, 8, 16, 32, 64 y 128.

Asi pues, por ejemplo para saber que valor (en decimal) tiene el numero binario: 01110001
 

Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
0
1
1
1
0
0
0
1
Peso:
128
64
32
16
8
4
2
1







Tabla 1.0: Ejemplo de conversión de un número binario a decimal.














Sumaremos el peso de cada posición así:

Bit 0 = 1 x 1 = 1
Bit 1 = 0 x 2 = 0
Bit 2 = 0 x 4 = 0
Bit 3 = 0 x 8 = 0
Bit 4 = 1 x 16 = 16
Bit 5 = 1 x 32 = 32
Bit 6 = 1 x 64 = 64
Bit 7 = 0 x128 = 0

Sumando todos los resultados intermedios tenemos 1+16+32+64 = 113
Que es exactamente el valor de la expresión binaria 01110001

Visto esto observaréis que podemos simplificar la tarea sumando los pesos de cada bit que contenga un uno, ignorando los que contengan un 0.

Os invito a que practiquéis convirtiendo números de binario a decimal usando la tabla 1.0 cambiando el patrón binario, por el que se os ocurra...
Por cierto, a ver si sois capaces sin mirar si quiera la tabla de decirme que valor decimal tiene el número binario 11111111  ¡Si lo sabéis ya, creo que podéis pasar página! ;)



No hay comentarios:

Publicar un comentario