código binario

en 3º de bup, allá por 1994, el profesor de religión nos mandó hacer una exposición oral sobre no recuerdo qué tema. teníamos que grabarla en una cinta y entregársela, poniendo en la etiqueta nuestro nombre y apellidos.

intenté varias veces soltar mi rollo con fluidez, pero lo dejé por imposible y lo grabé como salió. es difícil hablar con una máquina con naturalidad. es como cuando dejas un mensaje en un contestador...


el profesor nos devolvió nuestras cintas con la calificación escrita en la etiqueta. hasta ahí normal, si no fuera porque las escribió en código binario, nunca supe a cuento de qué. ese profesor era muy excéntrico. a mí me puso un 1000, que en binario equivale a un 8.

en nuestra vida diaria empleamos el sistema de numeración en base 10. los números los expresamos como suma de potencias de 10:  100=1,  101=10,  102=100,  103=1.000,  104=10.000 ...

pongamos como ejemplo el número del año en que vivimos, 2016. su cifra más alta corresponde a las unidades de millar. tenemos que analizar cuántas unidades de millar (103), centenas (102), decenas (101) y unidades (100) contiene.

2016 abarca 2 unidades de millar, 0 centenas, 1 decena y 6 unidades. lo podríamos expresar como:
2·103 + 0·102 + 1·101+ 6·100.

como vemos, los dígitos de un número en base 10 son las veces que contiene cada una de las potencias de 10. pues bien, en el código binario -que es el sistema de numeración en base 2- tendremos que hacer algo análogo, pero con las potencias de 2.

20=1,  21=2,  22=4,  23=8,  24=16,  25=32,  26=64,  27=128,  28=256,  29=512,  210=1024,  211=2048,  212=4096 ... como veis, las potencias de 2 crecen significativamente más despacio que las potencias de 10, y por eso los números en binario tienen muchos más dígitos que en decimal.

volvamos al ejemplo del número que representa nuestro año, 2016. cuál es la máxima potencia de 2 que sea menor o igual que 2016? 1024, es decir 210. ya sabemos que 2016 en binario tendrá 11 dígitos -la potencia más alta +1, ya que la potencia de exponente cero también cuenta-.

restamos 2016–1024, que da como resultado 992. sobre este número aplicaremos un proceso análogo: cuál es la máxima potencia de 2 que sea menor o igual que 992? 512, que es igual a 29.

992–512 = 480. de nuevo la misma pregunta: cuál es la máxima potencia de 2 que “quepa” dentro de 480? 256, o lo que es lo mismo 28.

480–256 = 224. y cuál es la máxima potencia de 2 que quepa dentro de 224? 128, igual a 27.

224–128 = 96. cuál es la máxima potencia de 2 abarcable dentro de 96? 64, es decir 26.

96–64 = 32. hemos tenido suerte, porque 32 es una potencia de 2, concretamente 25. eso quiere decir que ya no tenemos que continuar iterando, ya que el resto de las cifras serán ceros.

recapitulemos: 2016 se expresará como suma de potencias de 2 de la siguiente manera:
1·210+ 1·29 + 1·28 + 1·27 + 1·26+ 1·25 + 0·24 + 0·23 + 0·22+ 0·21 + 0·20.

los coeficientes que multiplican a las potencias de 2 serán los dígitos en código binario. en nuestro ejemplo, 2016 en binario quedará así: 11111100000.

el código binario se denomina así porque las cifras sólo pueden tomar dos valores posibles -el prefijo ‘bi’ significa dos-: 1 y 0. y es lógico, porque al expresar los números como combinación de potencias de 2, si alguna de ellas la multiplicáramos por 2 ya estaríamos en la potencia siguiente. cada potencia de 2, o está una vez (1) o no está (0).

y dicho código binario es el lenguaje empleado en todas las aplicaciones de electrónica digital y de informática...


os dejo con una tabla de los números del 1 al 40 -el 40 para mí es un número muy especial- traducidos de decimal a binario. además he añadido el desarrollo de cada uno de ellos, para que se entienda de dónde vienen esas ristras de ceros y unos.

 0........0......................................0·20
 1........1......................................1·20
 2.......10...............................1·21 + 0·20
 3.......11...............................1·21 + 1·20
 4......100........................1·22 + 0·21 + 0·20
 5......101........................1·22 + 0·21 + 1·20
 6......110........................1·22 + 1·21 + 0·20
 7......111........................1·22 + 1·21 + 1·20
 8.....1000.................1·23 + 0·22 + 0·21+ 0·20
 9.....1001.................1·23 + 0·22 + 0·21+ 1·20
10.....1010.................1·23 + 0·22 + 1·21+ 0·20
11.....1011.................1·23 + 0·22 + 1·21+ 1·20
12.....1100.................1·23 + 1·22 + 0·21+ 0·20
13.....1101.................1·23 + 1·22 + 0·21+ 1·20
14.....1110.................1·23 + 1·22 + 1·21+ 0·20
15.....1111.................1·23 + 1·22 + 1·21+ 1·20
16....10000..........1·24 + 0·23 + 0·22+ 0·21 + 0·20
17....10001..........1·24 + 0·23 + 0·22+ 0·21 + 1·20
18....10010..........1·24 + 0·23 + 0·22+ 1·21 + 0·20
19....10011..........1·24 + 0·23 + 0·22+ 1·21 + 1·20
20....10100..........1·24 + 0·23 + 1·22+ 0·21 + 0·20
21....10101..........1·24 + 0·23 + 1·22+ 0·21 + 1·20
22....10110..........1·24 + 0·23 + 1·22+ 1·21 + 0·20
23....10111..........1·24 + 0·23 + 1·22+ 1·21 + 1·20
24....11000..........1·24 + 1·23 + 0·22+ 0·21 + 0·20
25....11001..........1·24 + 1·23 + 0·22+ 0·21 + 1·20
26....11010..........1·24 + 1·23 + 0·22+ 1·21 + 0·20
27....11011..........1·24 + 1·23 + 0·22+ 1·21 + 1·20
28....11100..........1·24 + 1·23 + 1·22+ 0·21 + 0·20
29....11101..........1·24 + 1·23 + 1·22+ 0·21 + 1·20
30....11110..........1·24 + 1·23 + 1·22+ 1·21 + 0·20
31....11111..........1·24 + 1·23 + 1·22+ 1·21 + 1·20
32...100000...1·25 + 0·24 + 0·23+ 0·22 + 0·21 + 0·20
33...100001...1·25 + 0·24 + 0·23+ 0·22 + 0·21 + 1·20
34...100010...1·25 + 0·24 + 0·23+ 0·22 + 1·21 + 0·20
35...100011...1·25 + 0·24 + 0·23+ 0·22 + 1·21 + 1·20
36...100100...1·25 + 0·24 + 0·23+ 1·22 + 0·21 + 0·20
37...100101...1·25 + 0·24 + 0·23+ 1·22 + 0·21 + 1·20
38...100110...1·25 + 0·24 + 0·23+ 1·22 + 1·21 + 0·20
39...100111...1·25 + 0·24 + 0·23+ 1·22 + 1·21 + 1·20
40...101000...1·25 + 0·24 + 1·23 + 0·22 + 0·21+ 0·20

Comentarios