12 mayo 2012

¿Por qué 1Gb son 1024Mb y no 1000Mb?


Varias veces nos preguntamos, ¿Por qué 1 GB (Un Gigabyte) son 1024 megas y no simplemente 1000? ¿No sería más fácil contarlos si fueran mil? ¿Por qué las memorias RAM son de 128, 256, 512, etc. y no de 150, 250, etc.?En fin, empecemos.
El tema es que cuando se diseñaron las primeras computadoras, la cuenta se hizo en base al sistema binario, ya que electrónicamente es mucho más sencillo -y barato- representar 2 estados diferenciados, que corresponderían al 0 y al 1, que representar 10 estados diferentes (lo cual sería necesario si quisiéramos usar el sistema decimal en las computadoras. En Realidad, en un principio se hicieron computadoras "decimales", pero luego se optó por las binarias.
Representar dos estados electrónicamente es fácil: podemos imaginar, por ejemplo, un capacitor que puede estar en uno de dos estados: cargado o descargado. Si está cargado decimos que contiene un "1", y si se encuentra descargado decimos que contiene un "0".
A esta, la menor pieza posible de información, se la denominó "bit" (del inglés: trozo, pedazo pequeño).
Pues bien, a partir del bit se creó la unidad básica de información, que es el "byte". Un byte no es más que el conjunto de 8 bits.
¿Por qué 8 y no 10?
Porque, al decir que una computadora trabaja con el sistema binario, lo que quiero decir es que todo tipo de información (colores, sonidos, números, fotos, videos, programas, etc.) tienen que ser representados como una suma de bits, ya cada bit puede asumir solo uno de dos posibles estados: puede ser un "0" o un "1". No existe otra posibilidad.
Por lo tanto, si quiero escribir un "3" o un "15" por ejemplo, deberé crear un código, algo así como los códigos que creamos de niños para mandar mensajes secretos.
Así, 0 es 0 y 1 es 1; pero, ¿como decimos 2 en binario? Pues 10 (ojo, es 2 en binario, no diez, que en binario se escribe "1010".)
Pero bueno, no nos enredemos ahora con el sistema binario.
Si te cuento esto es para que entiendas que, los primeros datos que se necesitaban representar en una computadora eran, claro, las letra y los números, con los cuales ingresar instrucciones a la maquina.
Pues bien, para representar las letras y los números se creó un código llamado ASCII (se pronuncia "asqui".) que contiene la correspondencia entre las letras del abecedario, signos de puntuación (inglés, claro: sin eñes, ni apertura de interrogación, etc.), números y signos más usuales y su codificación en binario.
Esta Tabla de Caracteres ASCII, como se la denomina, contiene 256 caracteres, es decir, que para representarlos en binario se requiere un número binario de 8 cifras (8 bits).
Es por esta razón que la unidad básica de memoria de un computador es el Byte, ya que en un Byte se puede almacenar un carácter ASCII (por ejemplo el numero "5" o la letra "H".).
De aquí en más yo creo que entenderás porque las clásicas unidades designadas con Kg, Metro, Gramo, Tonelada. No igualan la proporción usual de ser cada una 1000 veces exactamente la anterior.
La razón es un poco de índole matemática: en el sistema decimal cada número tiene un valor absoluto y un valor posicional. En el binario también.
Pero si observamos, por ejemplo el 2 en la primera posición (la de las unidades) vale simplemente 2; pero en la segunda posición (la de las decenas) vale 20 y en la tercera (la de las centenas) vale 200 y así en adelante.
Como podemos ver, el valor de un numero en el sistema decimal es igual a su valor absoluto en la primer posición, pero en la segunda su valor se multiplica por 10, y en la tercera se vuelve a multiplicar por 10, etc. Por eso se llama sistema "decimal", porque cada posición multiplica el valor de la anterior por 10, de tal forma que todo numero decimal puede expresarse como la suma de potencias de 10:
215= 200 + 10 + 5 = 2*100 + 1*10 + 5*1 = 2*10^2 + 1*10^1 + 5*10^0
( * ) es la multiplicación y ( ^ ) es elevado a una potencia
En binario pasa algo similar, pero como estamos hablando de “binario” no de “decimal”, las potencias, en vez de ser de 10, son de 2.
Así pues, el número 1010 (10 en decimal) se lee así:
1010= 1*2^3 + 0*2^2 + 1*2^1+ 0*2^0 = 1*8 + 0*4 + 1*2 + 0*1 = 8 + 0 + 2 +0 = 10
(en decimal)
Pues bien, esta es la respuesta a la famosa pregunta:
El sistema binario está basado en las potencias de 2 y no en las potencias de 10. Con ayuda de una calculadora podrás verificar que siguiendo la progresión geométrica de las potencias de 2, llegamos al famoso numerito 1024: 2 – 4 -8 – 16 – 32 – 64 -128 – 256 – 512 – 1024
Estoy seguro, además, que algunos números de la serie anterior te recuerdan las capacidades Standard en las que viene las memorias (parece que esta respuesta puede también servir para esa pregunta: ¿Por qué la memoria RAM viene en 256 MB, 512 MB, etc.? ¿Por qué no vienen memorias de 500 MB?
Es 1024 entonces, y no 1000 el factor de multiplicación de las unidades informáticas:
1 KB = 1024 Bytes (recuerda que un byte son 8 bits)
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
…etc.

1 comentario:

  1. Ui como se me pone la cabeza a mi con tanto número
    ¡Saludos y feliz domingo!

    ResponderEliminar