martes, 22 de septiembre de 2009

¿Como funcionan los bits y los bytes?

Aquel que haya usado una computadora por más de 5 minutos, ha escuchado las palabras bits y bytes. Las capacidades del RAM y de los discos duros se miden en bytes.

Pueden haber escuchado un anuncio “Esta computadora tiene procesador de 64 bits y 2 Gigabytes de RAM y 250 GB de disco duro”

Ahora, la forma mas fácil de entender los bits, es comparándolos con algo que conocemos “dígitos”. Un digito es un lugar que puede contener un valor numérico entre 0 y 9. Los dígitos normalmente se combinan para formar números más grandes. Por ejemplo, 7,536 tiene 4 dígitos. Es bien entendido que en el numero 7,536, el 6 llena el lugar de las unidades, el 3 el de las decenas, el 5 el de las centenas y el 7 el de los millares. Ahora siendo explícitos lo podríamos poner de la siguiente manera:

(7 * 1000) + (5 * 100) + (3 * 10) + (6 * 1) = 7000 + 500 + 30 + 6 = 7536

Otra forma de expresarlos seria utilizando potencias de 10. (Asumiendo que vamos a representar el concepto de “elevar a la potencia de” con el símbolo "^" para que “10 al cuadrado se escriba "10^2"”) de la siguiente manera:

(7 * 10^3) + (5 * 10^2) + (3 * 10^1) + (6 * 10^0) = 7000 + 500 + 30 + 6 = 7536

Lo que se puede ver de esta expresión es que cada digito reserva un espacio para la siguiente potencia de 10, empezando por el primer digito con 10 a la cero.

Ahora, las expresiones anteriores están basadas en un sistema decimal, pero lo interesante de los sistemas numéricos es que no estamos forzados a tener 10 valores distintos en un mismo digito. Nuestro sistema base-10 es probable que se haya creado dado que tenemos 10 dedos, pero si hubiéramos evolucionado con 8, lo mas probables es que fuera base-8. Podemos tener sistemas base-n o “base-cualquier número”. De hecho hay muy buenas razones para usar diferentes sistemas en otras situaciones.

Las computadoras operan con un sistema base-2, también conocido como el sistema numérico binario. La razón por la cual las computadoras usan el sistema base-2 es, porque es mas fácil implementarlo con la actual tecnología electrónica. Se podría cablear y construir computadoras que operen en base-10, pero serian extremadamente costosas por el momento, mientras que las basadas en binario son relativamente baratas.

Entonces, las computadoras usan números binarios y por ende dígitos binarios en lugar de decimales. La palabra bit es un diminutivo de digito binario “Binari digIT”. Ahora, donde los números decimales pueden tener 10 valores distintos que van del 0 al 9, los bits solos tienen dos posibles valores: 0 o 1. Es por eso que los números binarios se componen solamente de 0 y 1 como este: 1011. Ahora, ¿como sabemos cual es el valor del número binario 1011? , Lo hacemos de la misma forma en que lo hicimos con el número 7536, pero utilizamos base-2 en vez de base-10, entonces:

(1 * 2^3) + (0 * 2^2) + (1 * 2^1) + (1 * 2^0) = 8 + 0 + 2 + 1 = 11

Se puede ver que en los números binarios, cada bit mantiene el valor de potencias incrementales de 2, eso hace que contar en binario sea bastante fácil, si contáramos del 0 al 20 en decimal y binario se vería de la siguiente manera:

0 = 0

1 = 1

2 = 10

3 = 11

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

17 = 10001

18 = 10010

19 = 10011

20 = 10100

Cuando uno ve esta secuencia, los 0 y 1 son los mismos para el sistema decimal y binario. En el número 2, se ve que el sistema binario hace los primeros acarreos. Si un bit es 1, y uno agrega 1 a el, el bit se convierte en 0 y el siguiente bit se convierte en 1. En la transición del 15 al 16 este efecto salta hasta el 4 bit, convirtiendo el 1111 en 10000.

Los bits son raramente vistos solos en las computadoras. La mayoría de las veces se encuentran unidos en grupos de 8 bits, esta colección de bits se llama BYTES. ¿Porque es que hay 8 bits en un byte? Una pregunta similar seria ¿porque hay doce huevos en una docena? El byte de 8 bits es algo que la gente acordó en base a prueba y error en los últimos 50 años.

Con 8 bits en un byte, uno puede representar 256 valores en un rango del 0 al 255 que se muestra a continuación:

0 = 00000000

1 = 00000001

2 = 00000010

...

254 = 11111110

255 = 11111111

Los bytes son frecuentemente usados para almacenar caracteres individuales en un documento de texto. En el código ASCII cada valor binario entre 0 y 127 es asignado con un carácter específico. La mayoría de las computadoras extienden el código ASCII para usar el rango completo de 256 caracteres disponibles en un byte.
Las computadoras almacenan documentos de texto en disco como en memoria, utilizando estos códigos. Por ejemplo, si utilizaras Gedit (Linux) o Notepad (Windows) para crear un documento de texto conteniendo las siguientes palabras “Hola mundo”, estos utilizarían 1 byte de memoria por carácter (incluyendo 1 byte por el espacio entre palabras “Carácter ASCII no.32”).

Hagan esta prueba. Abran un nuevo archivo en Gedit o Notepad e inserten “Hola mundo” en el. Graben el archivo en disco bajo el nombre de prueba.txt y después usen el visor de archivos que utilicen y miren el tamaño del archivo. Encontraran que el archivo es de 10 bytes en disco, 1 byte por cada carácter. Si agregaran otra palabra a la frase, el archivo se incrementaría en bytes, cubriendo la misma cantidad de caracteres a 1 byte por carácter.
Si fueran a ver el archivo como lo ve la computadora, verían que cada byte contiene un número y no una letra. El número es el código ASCII que corresponde al carácter utilizado. Por lo que en disco, los números del archivo se verían así:

H o l a m u n d o

72 111 108 97 32 109 117 110 100 111

Si observáramos una tabla del código ASCII, veríamos que hay una correspondencia entre cada carácter y código ASCII utilizado. Observen que el 32 se utiliza para el espacio, el 32 es el espacio en el código ASCII. Ahora, podríamos expandir estos números al sistema binario (32 = 00100000) si quisiéramos estar técnicamente correctos, porque así es como una computadora realmente maneja las cosas.
Cuando uno empieza a hablar de muchos bytes, uno entra en el mundo de los prefijos, como el kilo, mega y giga, como en kilobyte, megabyte y gigabyte (abreviados Kbytes, Mbytes y Gbytes o KB, MB, y GB). La siguiente tabla muestra los multiplicadores binarios:



Uno puede ver en esta gráfica que kilo es como mil, mega es como un millón, giga es como mil millones, etc. Así que cuando alguien dice “Esta computadora tiene un disco duro de 80 GB, o 85,899,345,920 bytes, uno se pregunta como es posible necesitar tanto espacio, pero la realidad es que las bases de datos compuestas de Terabytes son muy comunes, y es probable que el pentágono tenga bases de datos de múltiples Petabytes.

La matemática binaria funciona igual que la matemática decimal, excepto que el valor de cada bit solo puede ser 1 o 0. Para percibir la matemática binaria, empecemos con una suma decimal y ver como funciona. Asuman que queremos sumar estos dos números 452 y 751:

452

+ 751

---

1203

Para sumar estos dos números podemos empezar sumando los de la derecha: 2 + 1 = 3. Ningún problema. Después 5 + 5 = 10, así que guardan el 0 y acarrean el 1 a las centenas. Después 4 + 7 + 1(lo acarrearon) = 12, guardan el 2 y acarrean el 1. Finalmente, 0 + 0 + 1 = 1. La respuesta es 1203.

La suma binaria funciona exactamente igual:

010

+ 111

---

1001

Empezando a la derecha, 0 + 1 = 1 para el primer digito, después 1 + 1 = 10 para el segundo digito, se guarda el 0 y se acarrea el 1. Después 0 + 1 + 1 = 10, se guarda el 0 y se acarrea el 1, y al final, 0 + 0 + 1 = 1. La respuesta es 1001. Si tradujéramos todo a decimal veríamos que es correcto 2 + 7 = 9.

En resumen esto es lo que hemos visto acerca de bits y bytes:

* Los bits son dígitos binarios, un bit puede tener valor 0 o 1.
* Los bytes están compuestos por 8 bits cada uno
* La matemática binaria funciona exactamente como la decimal, con la única diferencia de que cada bit solo puede tener valor de 0 o 1.

La verdad no hay nada mas que agregar, los bits y los bytes son así de simples.


Aquí tienen un Convertidor de Texto a Binario (y viceversa!)

Link: http://www.eztigma.tk/juegos/binary.php



Fuente: http://www.alcancelibre.org/article.php

No hay comentarios:

Publicar un comentario