El sistema binario de numeración¶
Las primeras computadoras de la historia fueron concebidas como enormes calculadoras, para realizar operaciones aritméticas, donde toda la información manejada eran números en formato binario.
Para un principiante, acostumbrado al sistema decimal, limitarse a usar solo ceros y unos puede parecer extraño. Pero no debemos olvidar que hay otras formas de contar. A veces lo hacemos por docenas, y tenemos que calcular mentalmente que cinco docenas son sesenta unidades. Recordemos, por ejemplo, los antiguos números romanos, una aritmética con grandes limitaciones, donde no existía el cero ni los números negativos. Tampoco había decimales, aunque en su lugar se utilizaban fracciones. En otras culturas como la china, la hebrea o la maya utilizaban sus propios sistemas de numeración, y parece ser que fueron los árabes quienes, a lo largo de sus conquistas, descubrieron la aritmética decimal, inventada en la India, y la expandieron allá por donde viajaron, siendo el origen del actual sistema de numeración utilizado en la cultura occidental.
¿A que se debe que contemos de diez en diez? Según los antropólogos, al hecho de que tengamos diez dedos en las manos. Es fácil observar que los niños los utilizan como una calculadora natural, y es de suponer que el hombre primitivo haría lo mismo. ¿Qué hubiera pasado si en lugar de tener cinco dedos en cada mano tuviésemos cuatro? Pues seguramente que contaríamos de ocho en ocho, y en lugar de un sistema decimal tendríamos uno octal.
En realidad podemos utilizar el sistema de numeración que queramos. Si deseáramos contar de cinco en cinco, tendríamos un sistema “quinario”, si de tres en tres, uno “ternario”. Y así sucesivamente. Los ordenadores sólo son capaces de utilizar ceros y unos, de ahí que los cálculos se hagan con aritmética binaria.
La dificultad es que aquí solo tenemos dos símbolos: el cero y el uno. Para cifras mayores de uno tenemos que combinar dígitos. Veamos una comparativa entre números decimales y su equivalente en binario:
Decimal | Binario | Decimal | Binario |
---|---|---|---|
0 | 0 | 10 | 1010 |
1 | 1 | 11 | 1011 |
2 | 10 | 12 | 1100 |
3 | 11 | 13 | 1101 |
4 | 100 | 14 | 1110 |
5 | 101 | 15 | 1111 |
6 | 110 | 16 | 10000 |
7 | 111 | 17 | 10001 |
8 | 1000 | 18 | 10010 |
9 | 1001 | 19 | 10011 |
A medida que se nos acaban los números, añadimos más dígitos y seguimos haciendo combinaciones.
Dado un número binario, ¿cuál es su equivalencia en decimal? En la tabla vemos que si tomamos como ejemplo el 10011, equivale a 19. Pero ¿cómo podemos hacer el cálculo para números más grandes sin tener que consultar esta tabla? Necesitamos una regla de conversión.
Analicemos un número decimal cualquiera, por ejemplo, el 723. Cada dígito toma un valor dependiendo de la posición en que se encuentra. El primer dígito, el siete, está en la posición de las centenas, por lo que vale 700 en lugar de 7. El segundo está en la posición de las decenas, por lo que vale 20 en lugar de 2. La suma de los dígitos aplicando su peso real es igual a 700+20+3=723:
Dígito: 7 2 3
Su peso: 100 10 1
Multiplicando: 700 20 3 Suma: 723
La serie de pesos se obtiene multiplicando cada peso por diez:
1, 10, 100, 1.000, 10.000, 100.000, ...
En el sistema binario hacemos lo mismo, pero para obtener cada peso tenemos que multiplicar por dos:
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, ...
Utilizaremos estos pesos como hacíamos con el sistema decimal, aplicándolos de derecha a izquierda.
Por ejemplo, dado el número binario 11010111:
1 x 128 = 128
1 x 64 = 64
0 x 32 = 0
1 x 16 = 16
0 x 8 = 0
1 x 4 = 4
1 x 2 = 2
1 x 1 = 1
suma = 215
Por lo tanto, el número binario 11010111 equivale al 215 en el sistema decimal. Véase que los dígitos binarios de la derecha son los que corresponden a los pesos de menos valor.
En realidad el cálculo es fácil: basta con memorizar estos pesos y sumar los correspondientes a los dígitos 1, despreciando los que están en la posición de los dígitos 0.
Para convertir a la inversa, hacemos lo siguiente. Tomemos el número 215. El mayor peso posible es 128. Si vamos restando los pesos obtenidos y tomamos el mayor posible para el resto, obtendremos que 215 = 128 +64 +16 + 4 +2 +1. Basta con poner un 1 en las posiciones correspondientes a estos pesos y dejar el resto a cero.
Hay un detalle adicional que no debemos perder de vista. En el sistema decimal, a los números tales como 10, 100, 1000, etc. les llamamos números “redondos”. En el sistema binario, los números redondos son los que acabamos de ver: 1, 2, 4, 8, 16, 32, 64, 128, 256 y 1024, es decir, las potencias de dos:
2 elevado a 0 = 1
2 elevado a 1 = 2
2 elevado a 2 = 4
2 elevado a 3 = 8
2 elevado a 4 = 16
2 elevado a 5 = 32
2 elevado a 6 = 64
2 elevado a 7 = 128
2 elevado a 8 = 256
2 elevado a 9 = 512
2 elevado a 10 = 1024
Estos números aparecen con frecuencia en el mundo de la informática. Por ejemplo, se suele decir que un byte son 8 bits, o que un mega es igual a un millón de bytes aproximadamente. En realidad son 1.048.576 bytes, resultado de multiplicar 1.024 x 1.024.