domingo, 31 de enero de 2016

Bits y bytes: aprende en 5 minutos el idioma de los ordenadores




Esta entrada va dedicada a esa gran mayoría que usa ordenadores, teléfonos inteligentes y otras maravillas y no ha recibido un curso de electrónica.  Todo el mundo sabe que la capacidad de almacenar información se mide en bytes. Así, una tarjeta de memoria para el móvil o la cámara puede tener 16 Gigabytes,  o sea,  dieciséis mil millones de bytes.    ¿Y qué es un byte?.  Un byte son ocho bits, con lo que lo que voy a intentar explicar   qué  es un bit y cómo se usa para almacenar información. Allá vamos.

Para escribir un texto en español usamos  27 letras,  además de  números y signos. En otros sistemas, como el chino y el coreano, tienen un número diferente de símbolos.  ¿Cuál sería el número mínimo de símbolos que podemos usar para almacenar un texto?.   Por ejemplo, la vida se las ingenia para almacenar la información en un código genético de 4 letras (ACGT) .  ¿Existe un código que permita  almacenar información con menos letras? La respuesta es si: el llamado código binario usa únicamente dos letras, o bits, que son el "0" y "1".

¿Cómo se "escribe" un texto en binario?.    Por ejemplo, en binario  el texto  "¿Cuánto son 2+2?"  quedaría  así:
  
101111110100001101110101 11100001011001000111010001101111001000000111001101101111011001000010000000110010001010110011001000111111

Pero, ¿cómo hemos llegado de un texto normal a   esta lista de ceros y unos?.  Hay que hacerlo en dos etapas.   Primera: hay que convertir el  texto "¿cuánto son 2+2?"  en una lista de  números.  Para ello, se usa el llamado código ASCII, "American Standard Code of Information Interexchange", que asigna a cada letra, número, y símbolo, un número entre el 0 y el 255.      Para que os hagáis una idea, muestro aquí  un trozo de la tabla de conversión.

  Así, con esta tabla podemos convertir el texto de 16 símbolos
"¿Cuánto son 2+2?" (contando espacios) en  números entre el 0 y el 255: 
191 67 117 225 110 116 111 32 115 111 110 32 50 43 50 63
¿     c    u     á     n     t     o     _    s     o       n    _   2    +   2   ?

En la segunda etapa, convertimos los números del "sistema decimal" del código ASCII  ( "191",  "67",  "225", ...)   a números binarios.    Esto funciona así.  En decimal, tenemos 10 dígitos, del 0 al 9.  Si queremos expresar un número mayor que 9, tenemos que usar 2 dígitos. Y si queremos expresar un número mayor que 999, 3 dígitos, etcétera.

En binario, hay dos bits, "0" y "1".  Si  queremos expresar un número mayor que 1, tenemos que usar dos "bits" .





DECIMAL    BINARIO
0                     0
1                     1
2                     10
3                     11
                                                     
Si queremos ir más allá de (0,1,2,3), o sea, más allá de 4 posibilidades, tenemos que usar 3 "bits" y para seguir, 4 "bits",  etcétera:

DECIMAL    BINARIO
4                     100
5                     101
6                     110
7                     111
8                     1000
9                     1001
10                   1010
11                   1011
12                   1100
13                   1101
14                   1110
15                   1111
16                   10000

 O sea, que para contar del 0 al 7,  que son  8 números, hacen falta 3 bits y para contar hasta 15 hacen falta 4 bits, y así sucesivamente.   

Ahora podemos ver por qué es especial un byte, o sea, 8 bits. Con 8 bits tenemos 256 combinaciones, es decir   2 elevado a 8, que permiten contar de 0 a 255 .   Como ya hemos dicho, el código ASCII tiene exactamente 256 entradas.  Es decir, que cada entrada del código ASCII se puede convertir en un número binario de 8 bits, o sea, en un byte.  Por tanto,  el  texto "¿cuánto son 2+2+?" se puede escribir así: 

TEXTO    ASCII     BINARIO
¿                197         10111111
c                  67         01000011
u                117         01110101
á                 225        11100001
n                 110        01100100
t                  116        01110100
o                 111        01101111
espacio        32         00100000
s                  115        01110011
o                 111        01101111
n                 110        01100100
espacio        32         00100000
2                  50         00110010
+                  43         00101011
2                  50         00110010
?                  63         00111111

Aunque a los humanos  el lenguaje binario nos resulte incómodo,   para fabricar ordenadores,   es muy conveniente.   Para almacenar información usando el código binario,  podemos usar cualquier cosa que tenga  dos estados posibles.  Por ejemplo, una bombilla encendida o apagada, nos serviría para tener un bit, y 8 bombillas nos permitirían tener un byte.   Dentro de tu ordenador hay, literalmente, miles de millones de interruptores  que pueden estar "encendidos" o "apagados" y por tanto cada uno de ellos es un "bit". En su realización física más sencilla, un "bit" es  un componente electrónico  que está constituido por  un  único  "transistor",  el dispositivo  semiconductor inventado en 1947 por Bardeen, Brattain y Shockley.  


Volvamos al principio.    En una tarjeta de memoria  de 16 Gbytes, es decir,  16 mil millones de bytes,  tenemos  128 mil millones de bits.   En el caso de la tarjeta de la figura, este número gigantesco  de "bits" tiene que caber en un área de unos  2cm x 2cm.   Dos  centímetros  son  igual a  20 millones (20M)  de nanometros (nm).   Así,   una tarjeta tiene unos  20M nm x  20M nm,  o sea, 400 billones de nanometros cuadrados.  Repartiendo bits por nanometros cuadrados,  cada bit dispone de un área de 4000 nanometros cuadrados, que  nos da  un región cuadrada de 63 nm  de lado.     Por eso  hablamos de nanoelectrónica.  Por tanto, los ingenieros y los físicos tienen que ser capaces de hacer bits de ese tamaño,  de poner billones de ellos juntos, de diseñar métodos para leer y escribir esos bits,  y de hacerlo de manera tan eficiente que puedan vender estas maravillas a 8 euros.   La física del estado sólido que hace esto posible tiene mucho que ver con este milagro tecnológico, del que seguiré hablando otro día.



No hay comentarios:

Publicar un comentario