representaciÓn interna de datos

34
REPRESENTACIÓN INTERNA DE DATOS ¿Cómo está almacenada la información en los dispositivos de almacenamiento de datos de una computadora? Para explicar lo solicitado tomemos, por ejemplo, un disco compacto. De sentido común las marcas que allí estén grabadas tienen que ser distintas. O sea tendremos una marca para identificar el carácter A, otra para el carácter B, otra para la C, y así hasta la Z. También deberíamos considerar marcas distintas para los caracteres en minúsculas (a, b, c, d, etc.), otras marcas para los caracteres numéricos (0, 1, 2, 3, 4, etc.), también para los signos de puntuación ( . , , , ; , : , etc.), los caracteres especiales ( / , % , $ , etc.). En fin, explicado de esta manera, deberíamos poder contar con “muchas” marcas distintas que una cabeza lectora de un dispositivo de almacenamiento tendría que poder distinguir. Digamos… más de doscientas marcas. Esto es todo un problema. Pero… ¿qué pasaría si asociamos cada carácter enumerado anteriormente con un número? Por ejemplo, el carácter A con el número 65. Procediendo de esta manera solo tendría la cabeza lectora del dispositivo que distinguir entre 10 símbolos distintos (pues todos los números se generan en el sistema de numeración decimal con la combinación de 10 símbolos, a saber: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9). Así para almacenar la palabra “HOLA” tendríamos que colocar las marcas que correspondan a la identificación de los caracteres: H, O, L y A, 0 sea: 72 79 76 65 Resuelto el problema. Con alguna tecnología que permita identificar a los números desde cero hasta nueve podemos almacenar cualquier información dentro de un dispositivo de almacenamiento de datos. 1

Upload: infocemif

Post on 20-Jun-2015

730 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: REPRESENTACIÓN INTERNA DE DATOS

REPRESENTACIÓN INTERNA DE DATOS

¿Cómo está almacenada la información en los dispositivos de almacenamiento de datos de una computadora?

Para explicar lo solicitado tomemos, por ejemplo, un disco compacto. De sentido común las marcas que allí estén grabadas tienen que ser distintas. O sea tendremos una marca para identificar el carácter A, otra para el carácter B, otra para la C, y así hasta la Z. También deberíamos considerar marcas distintas para los caracteres en minúsculas (a, b, c, d, etc.), otras marcas para los caracteres numéricos (0, 1, 2, 3, 4, etc.), también para los signos de puntuación ( . , , , ; , : , etc.), los caracteres especiales ( / , % , $ , etc.). En fin, explicado de esta manera, deberíamos poder contar con “muchas” marcas distintas que una cabeza lectora de un dispositivo de almacenamiento tendría que poder distinguir. Digamos… más de doscientas marcas. Esto es todo un problema.

Pero… ¿qué pasaría si asociamos cada carácter enumerado anteriormente con un número? Por ejemplo, el carácter A con el número 65. Procediendo de esta manera solo tendría la cabeza lectora del dispositivo que distinguir entre 10 símbolos distintos (pues todos los números se generan en el sistema de numeración decimal con la combinación de 10 símbolos, a saber: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9).

Así para almacenar la palabra “HOLA” tendríamos que colocar las marcas que correspondan a la identificación de los caracteres: H, O, L y A, 0 sea: 72 79 76 65

Resuelto el problema. Con alguna tecnología que permita identificar a los números desde cero hasta nueve podemos almacenar cualquier información dentro de un dispositivo de almacenamiento de datos.

¿Pero…? Me pregunto… ¿el sistema de numeración decimal es el único sistema de

numeración que existe? Definitivamente… NO. Existen muchos sistemas de numeración, el sistema decimal es solo uno de ellos. Quizás porque el hombre siempre tuvo diez dedos y contó desde antaño en conjuntos de diez elementos. Quizás por acostumbramiento siempre se lo siguió utilizando. Pero ciertamente podemos utilizar para contar cualquier base numérica, ya sea basados en diez elementos o en 5 elementos o en la cantidad de elementos que queramos.

Por ejemplo, si tuviéramos solo una mano podemos contar en conjuntos de 5 elementos y utilizaríamos como símbolos numéricos: el 0, el 1, 2, 3, y el 4. Para contar números mayores tendríamos que combinarlos como solemos hacer con los números decimales (o sea de menor a mayor).

1

Page 2: REPRESENTACIÓN INTERNA DE DATOS

En el sistema numérico decimal contamos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, …, 99, 100, 101, 102, … y así hasta infinito.

En el sistema numérico de 5 elementos contamos: 0, 1, 2, 3, 4, 10, 11, 12, 13, 14, 20, 21, …, 44, 100, 101, 102, … y así hasta infinito.

Con el símbolo 7 en el sistema numérico decimal hacemos referencia a 7 unidades, en el sistema numérico de 5 elementos para hacer referencia a 7 unidades tendremos que indicar un conjunto de 5 elementos más 2 unidades, o sea necesitamos indicarlo con la combinación 12.

Podemos generar una equivalencia entre los dos sistemas aludidos. Por ejemplo:

Sistema numérico de 10 elementos

Sistema numérico de 5 elementos

0 = 01 = 12 = 23 = 34 = 45 = 106 = 117 = 128 = 139 = 14

10 = 2011 = 2112 = 2213 = 2314 = 2415 = 3016 = 31… = …

¿Pero... estos sistemas numéricos son los únicos que existen?

Definitivamente… NO.

Para representar cualquier conjunto de elementos podemos valernos del sistema de numeración de diez elementos (sistema numérico decimal o base 10) (que solemos utilizar a diario desde siempre), o el sistema anterior basado en cinco elementos (sistema numérico pental o base 5) o el sistema numérico basado en cualquier conjunto de elementos (2

2

Page 3: REPRESENTACIÓN INTERNA DE DATOS

elementos, 3, 4, 6, 7, 8, 9, o cualquier otro). Por supuesto, todos los sistemas numéricos son equivalentes, o sea que un mismo conjunto de elementos se puede representar, sin problemas, en el cualquier otro sistema numérico.

A modo de ejemplo analice el siguiente cuadro:

BASE 2 BASE 3 BASE 4 BASE 5 BASE 6 BASE 7 BASE 8 BASE 9 BASE 100 0 0 0 0 0 0 0 01 1 1 1 1 1 1 1 1

10 2 2 2 2 2 2 2 211 10 3 3 3 3 3 3 3

100 11 10 4 4 4 4 4 4101 12 11 10 5 5 5 5 5110 20 12 11 10 6 6 6 6111 21 13 12 11 10 7 7 7

1000 22 20 13 12 11 10 8 81001 100 21 14 13 12 11 10 91010 101 22 20 14 13 12 11 101011 102 23 21 15 14 13 12 111100 110 30 22 20 15 14 13 121101 111 31 23 21 16 15 14 131110 112 32 24 22 20 16 15 141111 120 33 30 23 21 17 16 15

10000 121 100 31 24 22 20 17 1610001 122 101 32 25 23 21 18 1710010 200 102 33 30 24 22 20 1810011 201 103 34 31 25 23 21 1910100 202 110 40 32 26 24 22 20

Para aclarar el concepto tome en cuenta el siguiente conjunto de 12 círculos:

3

Page 4: REPRESENTACIÓN INTERNA DE DATOS

Por tratarse todos los sistemas de numeración de sistemas numéricos posicionales, en el sistema de numeración decimal (base 10) lo representaríamos de la siguiente manera:

1 2 = 12conjunto de 10 unidades

En el sistema de numeración pental (base 5) sería:

2 2 = 22conjunto de 5 unidades

Ambos sistemas son equivalentes, pues estamos representando lo mismo.

El mismo razonamiento podemos realizarlo con cualquier base numérica. Por ejemplo en base 2 sería:

4

+

+

Page 5: REPRESENTACIÓN INTERNA DE DATOS

1 1 0 0 = 1100conjunto de 2 conjuntos,

que a su vez cada uno tiene 2 conjuntos de 2 elementos cada uno

conjunto de 2 conjuntos que a su vez tiene 2 elementos cada uno

conjuntos de 2 elementos cada

uno

unidades

1 x 2 x 2 x 2 1 x 2 x 2 0 x 2 0

En resumen, podemos representar cualquier conjunto de elementos disponiendo de cualquier base numérica, o sea podemos basarnos en sistemas numéricos de la cantidad de símbolos o de códigos que queramos.

Volviendo a nuestro problema inicial… recuerda que queríamos asociar un número a un carácter para almacenarlo de una manera más sencillo dentro de un dispositivo de almacenamiento de datos. ¿Qué sistema numérico utilizaría después de todo lo visto? Tenga en cuenta que llegamos a la conclusión de todos los sistemas numéricos son equivalentes. Por lo tanto da lo mismo utilizar un sistema que otro. Tratemos de utilizar el más conveniente.

5

Page 6: REPRESENTACIÓN INTERNA DE DATOS

La respuesta, seguramente, será optar por el sistema numérico decimal ya que es el que más conocemos y estamos acostumbrados a utilizarlo. Pero… ¿es el mejor?... ¿es el más adecuado? Analicemos los pro y los contra:

Ventajas del sistema numérico decimal:

Muy conocido Muy utilizado Muy cómodo

Desventajas:

Posee muchos símbolos (o códigos) distintos (son diez).

Quizás, la desventaja mencionada no sea un gran impedimento para nosotros ya que desde hace mucho tiempo conocemos dichos símbolos o códigos de memoria, pero en algún momento tuvimos que aprenderlos de memoria y son diez.

Ahora, veamos todo lo descripto hasta acá desde la visión de una computadora (o desde cualquier dispositivo tecnológico que opere con información). Desde dicho punto de vista las ventajas son compartidas por todos los sistemas numéricos que se puedan utilizar. A un dispositivo le será igual utilizar un sistema que otro (todos les serán conocidos, utilizados y cómodos por igual). Pero utilizar un sistema con demasiados símbolos o códigos puede resultar engorroso. Es difícil para una máquina tener que distinguir entre varios códigos distintos. Mucho más sencillo sería utilizar el sistema numérico que tuviera la menor cantidad de símbolos o códigos distintos. Por lo tanto el más apropiado será el de dos símbolos (base 2). Distinguir entre 2 estados bien definidos es mucho más sencillo que distinguir entre 5 o diez estados distintos. Por esta razón, en todos los dispositivos se utiliza el sistema de numeración de dos símbolos o códigos. A este sistema se lo denomina binario (por tener solo 2 símbolos).

Dentro de un dispositivo tecnológico es muy fácil distinguir entre dos estados bien diferenciados. Hay muchas formas físicas para hacerlo. A modo de ejemplo se enumeran algunas posibilidades:

Que por un cable pase corriente eléctrica o no. Que algo esté magnetizado con distintas polaridades. Que una lámpara esté encendida o apagada. Que se generen distintos tonos de sonidos. Que se realicen perforaciones de distintos tamaños.

6

Page 7: REPRESENTACIÓN INTERNA DE DATOS

Por lo tanto en nuestro problema inicial si queremos almacenar la palabra “HOLA” dentro de un dispositivo de almacenamiento de datos en vez de asociarla a números expresados en el sistema numérico decimal habría que expresarlos en el sistema numérico binario.

Por ejemplo:

H O L A72 79 76 65

1001000 1001111 1001100 1000001

Si queremos almacenar la palabra anterior en un disco compacto (CD), como la tecnología de este dispositivo es óptica y está basada en el rayo láser que quema con mucha precisión la superficie del mismo.

Podemos almacenar la palabra anterior dentro de un disco compacto. La tecnología que utiliza este dispositivo está basada en pequeñas depresiones que un rayo láser hace sobre su superficie. En la jerga de computación se suele decir que el rayo láser “quema” el disco al hacer dichas depresiones. Si tenemos que distinguir solamente entre dos estados, con realizar dos tamaños distintos de perforaciones es suficiente.

Por ejemplo para almacenar el carácter “A” habría que hacer las siguientes depresiones:

1 0 0 0 0 0 1

Donde e1 valor 1 es representado por una depresión profunda y el 0 por una depresión pequeña.

Estas depresiones en la superficie del CD (disco compacto) no pueden verse a simple vista (son microscópicas). Están en el orden de los 4 µ (4 micrones). Para tener una idea sobre esta unidad toma una regla, visualiza 1 milímetro (distancia entre dos rayas pequeñas de la regla), ahora divide visualmente el milímetro en mil partes, eso es un micrón. El micrón es la millonésima parte del metro. Como se puede ver es imposible verlo a simple vista, pero el rayo láser si lo detecta. Este rayo es de tanta precisión que se suele utilizar en medicina

7

Page 8: REPRESENTACIÓN INTERNA DE DATOS

como si fuese un bisturí (corta al “quemar”), por ejemplo, es utilizado en la cirugía ocular de cataratas, donde debe eliminarse una delgada tela que se forma delante del globo ocular.

Al dígito de un sistema numérico binario o de base 2 se lo llama DÍGITO BINARIO o en inglés BINARY DIGIT. En general se lo suele reconocer por los dos primeros caracteres de la palabra “binary” y el último de la palabra “digit”, o sea “BIT”.

Por lo tanto podemos definir al bit de la siguiente manera:

BIT. Se refiere a un dígito binario (en inglés: binary digit) y es la unidad mínima de información que podemos tener dentro de un sistema de computación.

En resumen, podemos representar cualquier número en distintos sistemas de numeración, o sea en distintas bases numéricas (bases: 2, 3, 4, 5, 6, 7, 8, 9, 10). Incluso las bases numéricas pueden tomar valores mayores a 10, por ejemplo, la base 16 que es muy usada en computación (sistema numérico hexadecimal). Los símbolos utilizados en esta base numérica son los mismos que en base 10 (o sea: 0, 1, 2, 3,4, 5, 6, 7, 8, 9) y para completar los símbolos restantes (ya que la base 16 utiliza 16 símbolos) se utilizan las primeras letras de alfabeto (A, B, C, D, E y F).

Recuerde: todos los sistemas numéricos de distintas bases son equivalentes. Por ejemplo:

20 ǀ10 ≡ 40 ǀ5 ≡ 10100 ǀ2 ≡ 110 ǀ4 ≡ 24 ǀ8 ≡ 14 ǀ16

base numérica signo de equivalencia

valor numérico

Como todos los sistemas numéricos son posicionales (es decir, cada dígito depende de la posición que ocupe dentro del número), todos los números pueden ser expresados mediante un polinomio dado por la sumatoria de los productos de cada dígito por potencias decrecientes de la base. O sea:

20 ǀ10 = 2 x 101 + 0 x 100

Si calculamos el valor final obtendremos el número 20.

En efecto: 2 x 101 + 0 x 100 = 2 x 10 + 0 x 1 = 20 + 0 = 20

Lo anterior lo podemos aplicar para representar cualquier número expresado en cualquier base en base 10.

Hacemos:

8

Page 9: REPRESENTACIÓN INTERNA DE DATOS

40 ǀ5 = 4 x 51 + 0 x 50

= 4 x 5 + 0 x 1

= 20 + 0 = 20

10100 ǀ2 = 1 x 24 + 0 x 23 + 1 x 22 + 0 x 21 + 0 x 20

= 1 x 16 + 0 x 8 + 1 x 4 + 0 x 2 + 0 x 1

= 16 + 0 + 4 + 0 + 0 = 20

110 ǀ4 = 1 x 42 + 1 x 41 + 0 x 40 = 1 x 16 +1 x 4 + 0 x 1

= 1 x 16 + 1 x 4 + 0 x 1 = 16 + 4 + 0 = 20

24 ǀ8 = 2 x 81 + 4 x 80 = 2 x 8 + 4 x 1 = 16 + 4 = 20

14 ǀ16 = 1 x 161 + 4 x 160 = 1 x 16 + 4 x 1 = 16 + 4 = 20

La fórmula genérica sería:

An x Bn + An-1 x Bn-1 + … + A1 x B1 + A0 x B0

Donde A es el dígito en la posición (n) y B es la base numérica en la que está

representado el número.

También se puede hacer el proceso inverso, o sea, un valor expresado en base 10 expresarlo en cualquier otra base numérica.

9

Page 10: REPRESENTACIÓN INTERNA DE DATOS

Para realizar esta conversión dividimos el valor en base 10 por la base en la que queremos expresar el número. Debe tenerse cuidado de no obtener decimales al dividir pues el resto de la división será un dígito del número convertido. El resultado se vuelve a dividir y así se procede sucesivamente hasta que se imposible seguir dividiendo sin obtener decimales. El valor convertido comenzará con el resultado de la última división y seguirá con todos los restos obtenidos desde la última división hasta la primera.

Un ejemplo explicará lo anterior:

Para convertir 20 ǀ10 en base 2 debemos hacer:

20 2

0 10 2

0 5 2

1 2 2

0 1

1 0 1 0 0

Para comprobar lo anterior se puede hacer el proceso inverso, o sea:

10100 ǀ2 representarlo en base 10 (ver comienzo de página anterior)

En resumen, si se quiere representar cualquier valor de cualquier base en base 10, se lo puede hacer mediante la fórmula del polinomio. Si se quiere representar un valor en base 10 en cualquier otra base numérica se deberá dividir sucesivamente el valor por la base en la que se quiere representar el número.

10

Page 11: REPRESENTACIÓN INTERNA DE DATOS

Entonces… ¿es posible representar un valor expresado en cualquier base (que no sea base 10) en otra base (que tampoco sea base 10)? SI. Es posible hacerlo en dos pasos. Primero expresar el valor en base 10 y luego expresarlo en la base de destino pedida.

Como ejemplo, si queremos expresar el valor 110 ǀ4 en base 5 haríamos:

Primero, expresamos el valor en base 10:

1 x 42 + 1 x 41 + 0 x 40 = 1 x 16 + 1 x 4 + 0 x 1 = 16 + 4 + 0 = 20ǀ10

Segundo, el valor en base 10 lo expresamos en base 5:

20 5

0 4

4 0 ǀ5 Por lo tanto: 110 ǀ4 ≡ 40ǀ5

John Napier estudió los números binarios e ideó una forma para representar cualquier valor expresado en base 10 en base 2 (sistema binario) y viceversa.

Para ello tomó un tablero de ajedrez (que tiene 8 columnas). Le dio a cada columna un peso equivalente a una potencia de dos en forma decreciente, o sea:

27 26 25 24 23 22 21 20

11

Page 12: REPRESENTACIÓN INTERNA DE DATOS

En las columnas donde se colocaría un dígito 1 que corresponde a un valor binario coloca una ficha, o sea:

27 26 25 24 23 22 21 20

y sumó los pesos de las columnas donde colocó las fichas, o sea:

24 + 22 = 16 + 4 = 20

Esto se relaciona con la fórmula del polinomio, pues en las columnas donde colocó las fichas sería como multiplicar en la fórmula por 1, y las columnas donde no colocó fichas no las tuvo en cuenta, pues sería como multiplicar en la fórmula por 0.

Para hacer el proceso inverso, o sea pasar de base 10 a base 2 (sistema binario) habría que deducir donde habría que colocar las fichas para las potencias de esas columnas sumadas diera por resultado el valor expresado en base 10. El número binario surgiría al reemplazar los lugares donde estarían las fichas por 1 y las casillas vacías por 0.

Al comienzo del apunte se trató de explicar cómo se almacena un carácter dentro de un dispositivo de almacenamiento de datos. Se vio la conveniencia de asociar el carácter a un valor numérico. También se vio la conveniencia de que ese número estuviera expresado en base 2 (sistema de numeración binaria). Pero… ¿cuántos caracteres distintos pueden almacenarse? La respuesta rápida es: más de 200 caracteres.

Por eso para completar la explicación habría que hacer el siguiente razonamiento:

12

Page 13: REPRESENTACIÓN INTERNA DE DATOS

¿Cuántos estados distintos pueden representarse con 1 dígito binario?

La respuesta es 2. Ya que con un dígito binario puedo representar 0 ó 1.

¿Y con 2 dígitos binarios?

Con 2 dígitos binarios, combinándolos, se pueden tener los siguientes estados: 00 – 01 – 10 – 11. O sea 4 estados. Por lo tanto, si tuviéramos 2 dígitos binarios podríamos identificar 4 caracteres distintos.

Siguiendo con ese razonamiento, si tuviéramos 3 dígitos, combinándolos, tendríamos los siguientes estados: 000 – 001 – 010 – 011 – 100 – 101 – 110 – 111. O sea 8 estados, podríamos identificar 8 caracteres distintos.

En resumen:

1 dígito 2 dígitos 3 dígitos0 00 0001 01 001

10 01011 011

100101110111

Se puede observar que la cantidad de combinaciones (o estados) posibles es 2 (base del sistema binario) elevado a la cantidad de dígitos considerados. O sea:

1 dígito => 2 estados posibles => 21

base numérica cantidad de dígitosconsiderados

2 dígitos => 4 estados posibles => 22

3 dígitos => 8 estados posibles => 23

Entonces, con 4 dígitos podemos tener 16 estados posibles (24) e identificar hasta 16 caracteres. Las combinaciones serían: 0000 – 0001 – 0010 – 0011 – 0100 – 0101 – 0110 – 0111 – 1000 – 1001 – 1010 – 1011 – 1100 – 1101 – 1110 – 1111.

Recuerde que (como se dijo al principio del apunte) las combinaciones se desarrollan de menor a mayor y de derecha a izquierda.

13

Page 14: REPRESENTACIÓN INTERNA DE DATOS

¿Cuántos dígitos binarios serían necesarios para identificar a más de 200 caracteres?

Pues, sigamos con nuestro razonamiento:

4 dígitos => 24 => 16 estados posibles => se identif. 16 caracteres

5 dígitos => 25 => 32 estados posibles => se identif. 32 caracteres

6 dígitos => 26 => 64 estados posibles => se identif. 64 caracteres

7 dígitos => 27 => 128 estados posibles => se identif. 128 caracteres

8 dígitos => 28 => 256 estados posibles => se identif. 256 caracteres

Por lo tanto, necesitamos 8 dígitos binarios para poder identificar 256 caracteres del teclado.

De lo anterior se puede deducir que se necesita un conjunto de 8 bits (o dígitos binarios u octetos) para identificar a un carácter del teclado. A ese conjunto se lo suele llamar en computación: BYTE.

Por lo tanto podemos definir al byte de la siguiente manera:

BYTE. Se refiere a un conjunto de ocho bits (o dígitos binarios) y es la cantidad de memoria necesaria para almacenar un carácter del teclado. Es un octeto de bits.

Ahora… ¿qué combinación de dígitos binarios utilizamos para almacenar un carácter en particular? ¿Con la combinación: 01000001 identificamos el carácter A, o el carácter B? ¿O cuál?

Lo anterior surge de ponernos de acuerdo que combinación usamos para cada carácter del teclado. Por lo tanto se armó, por convención, una tabla standard internacional de caracteres conocida como tabla de códigos ASCII (Códigos Standard Americanos para el Intercambio de Información).

14

Page 15: REPRESENTACIÓN INTERNA DE DATOS

La tabla completa de códigos ASCII ES:

En dicha tabla puede observarse que al carácter A (mayúscula) se le asigna el valor decimal 65 que es el equivalente 01000001 en el sistema binario (el cero a la izquierda no tiene valor aritmético se lo incluye para completar un octeto o byte de información). Por supuesto, internamente en el dispositivo se almacena el número en binario, en la tabla aparece el valor decimal para que la lectura de ella sea más sencilla y legible.

Como existe una correspondencia entre los caracteres del teclado y los números en decimal, es indistinto escribir tipeando los primeros o los segundos. Tal el caso de no encontrar algún carácter en el teclado (por ejemplo el carácter “@” y tipear el valor decimal equivalente (64). Si opta por hacer lo anterior deberá utilizar el teclado numérico que suele estar a la derecha del teclado junto con el tipeo de la tecla “Alt”.

15

Page 16: REPRESENTACIÓN INTERNA DE DATOS

Muchas veces se suele utilizar el tipeo del valor decimal (código ASCII) para tipear caracteres especiales o que no se encuentran fácilmente en el teclado (por estar el teclado configurado en otro idioma). Tal el caso de los siguientes caracteres:

Alt 160 áAlt 130 éAlt 131 íAlt 162 óAlt 163 úAlt 164 ñAlt 165 ÑAlt 167 °

Por supuesto, el espacio es un carácter más que corresponde al valor decimal 32.

¿Qué puede decirse de la siguiente secuencia de caracteres?

01001000010011110100110001000001 Son 32 bits. Son 4 bytes Si los agrupamos en bytes y obtenemos el valor decimal equivalente, podemos

buscar en la tabla de códigos ASCII el carácter correspondiente. (Encontraremos la secuencia de caracteres: HOLA).

¿Cuánta información puede almacenarse dentro de un disco compacto?

Mucha.

Dentro de un disco compacto pueden almacenarse 5.872.025.600 bits. Equivalente a 734.003.200 bytes o 734.003.200 caracteres textuales. Teniendo en cuenta que la página de un libro suele contener aproximadamente 2.000 caracteres y que un libro (en promedio) suele contener 300 páginas, podrían almacenarse dentro de un CD (o disco compacto): el contenido de una biblioteca de, aproximadamente, 1. libros.

Todo el razonamiento anterior es suponiendo que solo contamos con caracteres textuales pero tengamos en cuenta que la información puede tener otra consistencia: imágenes, videos, audio, animaciones, etc. Con respecto a esto luego haremos referencia.

16

Page 17: REPRESENTACIÓN INTERNA DE DATOS

LA REVOLUCIÓN DIGITAL

Si resumimos todo lo desarrollado hasta ahora podemos decir que en los dispositivos de almacenamiento de datos de cualquier dispositivo tecnológico de la información y la

comunicación se utilizan bits (ya sea una computadora, un celular, un fax, un reproductor de audio o video moderno, televisión digital, reproductores de DVD, de MP3, MP4, MP10, una cámara o filmadora, o cualquier otro dispositivo digital).

Todo esto es conocido como LA REVOLUCIÓN DIGITAL, todo se puede representar con dígitos binarios. Físicamente, en algunos casos los bits estarán representados por presencia o ausencia de electricidad, o por depresiones de distintos tamaños, o por distinta polaridad magnética, o distinta frecuencia en los tonos de audio, o distintos niveles de oxidación de ciertas sustancias, pero siempre será posible distinguir entre dos estados bien diferenciados,

un estado hará referencia al “1”, otro estado al “0”.

En la actualidad, todo es trasmitido representándolo en bits, ya sea simplemente texto, o gráficos, imágenes, audio, video o animaciones. Esto es lo que, generalmente, es llamado

multimedia.

IMÁGENES EN BINARIO

Ya vimos como se representan los caracteres textuales utilizando bits. Pero… ¿Y las imágenes?

Para entender esto debemos pensar como está constituida una imagen. Para ello recordemos las viejas fotografías, en las que se notaba el grano de la foto. O sea los puntos que formaban las imágenes.

Una imagen no es más que una secuencia de puntos de distintos colores.

A modo de ejemplo supongamos el siguiente dibujo de una casa:

17

Page 18: REPRESENTACIÓN INTERNA DE DATOS

El dibujo está formado por una cuadrícula de 20 columnas y 9 filas, o sea 180 casillas.

Si convenimos que el color blanco está representado por un bit en cero y el negro, un bit en uno, podemos considerar lo siguiente:

0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 00 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 00 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 00 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 00 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 00 0 1 0 0 0 1 1 1 0 0 0 1 0 0 1 0 0 1 00 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 00 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

O sea que con una secuencia de 180 bits podemos “armar” el dibujo.

Por supuesto, el dibujo es muy elemental y poco “legible”, pero que pasaría si volvemos a realizarlo cambiando la cuadrícula por una que tenga 1280 columnas y 800 filas y un tamaño físico de 25 cm x 20 cm. Las casillas serían microscópicas, se convertirían en puntos. Esa es la idea convertirlas en puntos, cuantos más chicos mejor, para que no se note la forma cuadrada de la casilla. Cuantas más filas y columnas haya por centímetro mejor será la calidad de la imagen, o sea mejor será la resolución. A cada punto formado se lo suele llamar “elemento de cuadro” o en inglés “picture element”, en general es conocido por una combinación de ambas palabras, o sea “pixel”. Si logramos colocar la mayor cantidad de puntos por centímetro cuadrado, podemos decir que nuestro dibujo está en “Alta Definición” o en inglés “High Definition”, en general es conocido como HD.

Inversamente, cuando agrandamos los puntos (o sea las casillas), vemos los puntos como si fueran cuadrados, estamos pixelando la imagen, la resolución es muy baja. Se suele utilizar este efecto para distorsionar las imágenes, tal el caso de fotos de menores en los noticieros televisados donde se intenta la privacidad de sus caras.

Ahora, tratemos un poco el tema de los colores. Si la imagen es en blanco y negro podemos optar por distinguir entre dos estados, uno representado por el bit en 1 y otro representado por el bit en 0. La imagen no será de buena calidad. Pero… ¿qué pasaría si utilizamos para representar cada punto de la imagen 2 bits? Hemos visto que con dos bits tenemos 4 combinaciones ( 00 01 10 11), por lo tanto podemos asignar a cada combinación un color distinto. Por ejemplo: al 00, blanco; al 01, gris claro; al 10, gris oscuro y al 11; negro). La imagen se representará con 4 colores.

¿Y si en vez de utilizar 2 bits para cada punto, utilizamos 4 bits? Podremos tener 16 colores en nuestra imagen. ¿Y si utilizamos 32 bits (o sea 4 bytes)? Tendremos una imagen

18

Page 19: REPRESENTACIÓN INTERNA DE DATOS

representada con 4.294.967.296 colores distintos. Obtendremos una imagen de excelente calidad. La diferencia estará en el espacio que utilizaremos para almacenar la imagen dentro de un dispositivo.

Por ejemplo, una imagen como la primera que tratamos, con 20 columnas, 9 filas y 2 colores tendrá 180 bits (aprox. 23 bytes). Dentro de un CD podemos almacenar más de 30 millones de imágenes como la descripta.

En cambio una imagen de alta definición con excelente colorido como la última considerada (1280 columnas, 800 filas y 16.777.216 colores distintos) ocupará 24.576.000 bits (aprox. 3.072.000 bytes). Dentro de un CD podemos almacenar 227 imágenes como la descripta (tamaño aprox.: 25 cm x 20 cm).

Por lo tanto, mayor resolución, mayor calidad en colores, pero mayor espacio ocupará la imagen.

Las cámaras fotográficas digitales o las tomas fotográficas de los teléfonos celulares se basan en megapixel (las hay desde 1MP hasta 12MP ó más). Cuanto mayor sea el número de megapixel mayor será la resolución y calidad de la imagen.

La resolución es un parámetro a tener en cuenta al momento de ampliar una imagen, ya que cuanto más grande sea, más se ampliarán los puntos de la misma y disminuirá su calidad. Se dice que la imagen se pixela (los puntos se transforman en cuadrados).

¿Qué es mejor que ocupe más espacio y tenga mejor calidad o que ocupe menos espacio (más liviana) y tenga menor calidad? La respuesta es: depende de la situación, si la imagen es para utilizarla de fondo de pantalla podemos querer calidad resignando el espacio de almacenamiento, pero si la imagen debemos enviarla por internet cuanto más liviana es mejor, es más rápida para transmitirla, entonces, en esos casos, resignamos la calidad.

De lo anterior surgen los distintos formatos de los archivos que contienen imágenes. Están los formatos en que prevalece la calidad fotográfica (formato BMP) y están los formatos donde prevalece el reducido tamaño de los archivos a costa de resignar un poco la calidad de la imagen (formato JPG) utilizado bastante en internet (aunque no es muy notoria la disminución en la calidad fotográfica).

ACERCA DE LOS COLORES

Para tener 16.777.216 colores distintos tenemos que tener la posibilidad de realizar dicho número de combinaciones con números binarios. Eso se logra tomando 24 bits, o sea que:

Desde 000000000000000000000000 hasta 111111111111111111111111 existen 16.777.216 combinaciones posibles.

19

Page 20: REPRESENTACIÓN INTERNA DE DATOS

24 bits es equivalente a 3 BYTES y ya vimos que con un BYTE podemos hacer 256 combinaciones.

En números: 28 x 28 x 28 = 256 x 256 x 256 = 16.777.216

Un formato de color muy utilizado es el RGB (que en inglés hace referencia a los colores rojo, verde y azul, o sea Red-Green_Blue) (por eso el logo de TeLeFe tiene esos colores).

En este formato el rojo se hace variar desde 0 hasta 256. Para los colores verde y azul se procede igual. La combinación de los tres colores da toda la gama de 16.000.000 de colores (aprox.).

Puede verse al utilizar un software de procesamiento de imágenes que se puede configurar un color dando un valor entre 0 y 255 para el color rojo y lo mismo para los colores verde y azul. Si puede… pruébelo.

¿Y LOS VIDEOS?

En los videos podemos considerar todo lo dicho para la imagen fotográfica. Pues… ¿qué es un video? Una secuencia de tomas fotográficas que vistas a una gran velocidad dan la idea de movimiento. En un video se suelen ver entre 23 a 30 fotografías (o fotogramas) por segundo.

NÚMEROS DEMASIADOS GRANDES

Partimos de considerar un bit. Luego vimos que con 8 bits podemos almacenar un carácter textual. Por último vimos el gran tamaño que suelen ocupar las imágenes o los videos. Los números se convierten en cantidades demasiados grandes.

Por esta razón es necesario utilizar (al igual que en el sistema métrico decimal, o en el sistema de pesos, o de capacidades) múltiplos que nos ayuden a comprender mejor las cantidades.

MÚLTIPLOS DEL BIT Y DEL BYTE

El sistema de almacenamiento de datos dispone de los siguientes múltiplos (algunos de uso frecuente y otros a la espera de un incremento en las capacidades de los dispositivos

20

Page 21: REPRESENTACIÓN INTERNA DE DATOS

tecnológicos de almacenamiento, sobre todo en la computación personal, que es la tecnología a la que tenemos acceso a diario):

Un bit = unidad mínima de información en una computadora

Un byte = 8 bits (permite almacenar un carácter del teclado).

1 Kilobyte = 1 Kb = 1024 bytes =210 bytes aprox. 1000 bytes

¿Por qué 1024 y no 1000 como en el sistema métrico decimal donde 1 Kilómetro es igual a 1000 metros? Respuesta: porque estamos utilizando el sistema binario y en ese sistema todo es potencias de 2 y 1024= 210.

La tabla siguiente muestra todos los múltiplos del bit y del byte que se suelen utilizar y los que están próximo a utilizarse:

EQUIVALENCIAS BYTES BYTES (APROX.)

1 Kilobyte 1KB 1024 BYTES 210

1 Megabyte 1 MB 1024 KB 220

1 Gigabyte 1 GB 1024 MB 230

1 Terabyte 1 TB 1024 GB 240

1 Petabyte 1 PB 1024 TB 250

1 Exabyte 1 EB 1024 PB 260

1 Zettabyte 1 ZB 1024 EB 270

1 Yottabyte 1 YB 1024 ZB 280

Si quiere expresar las cantidades anteriores en bits (dígitos binarios) solo deberá multiplicar dichas cantidades por 8.

Para ejemplificar el uso de los múltiplos del bit y del byte podemos hacer referencia a algunos casos prácticos que vemos a diario:

La memoria RAM de una computadora moderna puede ser de 512 MB, o sea que es posible almacenar en dicha memoria 536.870.912 BYTES. En la práctica diaria se suele utilizar como aproximación 500 millones de bytes. También podríamos decir que se pueden almacenar 4.294.967.296 bits. (Es lo mismo en distintas unidades de almacenamiento).

¿Dentro de un pendrive de 2 GB, cuántos caracteres pueden almacenarse?

21

Page 22: REPRESENTACIÓN INTERNA DE DATOS

La página de una novela que solo tenga texto (sin fotos) puede tener alrededor de 2000 caracteres. Por lo tanto si la novela tiene 200 páginas se necesitarían 400.000 BYTES (aprox. 400 KB)

UNA CURIOSIDAD

Vimos que todos los sistemas de distintas bases numéricas son equivalentes.

También vimos que para representar un valor de base 10 en cualquier otra base numérica hay que dividir sucesivamente el valor por la base en la que se quiere representar el número.

También vimos que para representar en base 10 cualquier número expresado en otra base debemos recurrir al polinomio:

An x Bn + An-1 x Bn-1 + … + A1 x B1 + A0 x B0

O sea que: 45ǀ5 = 4 x 51 + 5 x 50 = 4 x 5 + 5 x 1 = 20 + 5 = 25ǀ10

Pero existe una curiosidad con las bases numéricas que son potencias de dos.

Estoy haciendo referencia a las bases: 4 = 22 , 8 = 23 , 16 = 24 , 32 = 25 , etc.

Si tomamos tantos dígitos binarios como la potencia de 2 de dicha base, la cantidad de combinaciones binarias que es posible realizar coincide con la cantidad de símbolos o códigos que tiene dicha base numérica. Por lo tanto, puede realizarse directamente la representación del número binario en dicha base numérica (sin pasar por la base 10) tomando la cantidad de dígitos binarios mencionada.

Un ejemplo aclarará la situación: si queremos representar el número: 01000001ǀ2 en base 4

Como 4 = 22 y las combinaciones binarias posibles tomando 2 dígitos binarios son:

00

01

10

11

Podemos hacer coincidir cada combinación con un símbolo del sistema de base 4, o sea:

00 0

22

Page 23: REPRESENTACIÓN INTERNA DE DATOS

01 1

10 2

11 3

Entonces procedemos de la siguiente manera:

0 1 0 0 0 0 0 1 ǀ2

1 0 0 1 ǀ4

Lo inverso también es posible. Puede representarse un número de una base que sea múltiplo de 2 en el sistema binario directamente.

Por ejemplo: 123ǀ4

Sería:

01 10 11 ǀ2

A modo de ejercicio tratemos de encontrar los números equivalentes en base 16 de los siguientes números binarios:

01001000 01001111 01001100 01000001

Chequee si corresponde a los siguientes valores:

48ǀ16 4Fǀ16 4Cǀ16 41ǀ16

El pasaje directo entre bases 2 y 16 es muy útil y utilizado en computación ya que muchas veces es necesario analizar la información almacenada en la memoria de la computadora o en algún dispositivo de almacenamiento.

En esos casos la información que se suele tener tiene la siguiente forma:

01001000010011110100110001000001

o sea una gran secuencia de unos y ceros difíciles de comprender.

23

Page 24: REPRESENTACIÓN INTERNA DE DATOS

Por lo tanto, muchos programas, que analizan la información almacenada en las memorias, nos dan dicha información representada en el sistema numérico de base 16 (o sistema hexadecimal) de la siguiente forma:

484F4C41

Con lo cual la información resulta ser más legible para analizar. Esto es lo que se llama en computación “pedir un vuelco de memoria”.

EJERCICIOS

Bases numéricas.

1) ¿Cuáles de los siguientes valores son válidos?

10ǀ2 ALEǀ16 10ǀ10 FEDEǀ16 124ǀ4 108ǀ7

2) Represente los siguientes números en bases 2, 4, 6, 8 y 16

25ǀ10 100ǀ10 65ǀ10 44ǀ5

3) Represente los siguientes números binarios en las bases 4, 6, 8, 10 y 16.

01000001ǀ2 10101010ǀ2 1111111011011110ǀ2

Códigos ASCII.

4) Escriba en binario la palabra “HOLA” . (omita las comillas)5) Escriba en binario la palabra “Hola” . (omita las comilla)6) Escriba en binario la frase: “Mundial Sudáfrica 2010” (omita las comillas)7) ¿Cuántos bits o bytes son necesarios para almacenar las palabras y frases de los

ítems 4, 5 y 6?8) ¿Cuántos diskettes de 3,5” son necesarios para almacenar el contenido de un CD

completamente grabado? Nota: el diskette de 3,5” tiene una capacidad de 1,44 MB y el CD de 700 MB.

9) ¿Cuántas fotos de 5 MB pueden almacenarse dentro de una tarjeta de memoria de 2 GB?

10) Ordene los siguientes archivos por su tamaño:Arch_1: 700MB Arch_4: 300 BYTES Arch_7: 2 MBArch_2: 1GB Arch_5: 1000000 bits Arch_8: 0,5 TBArch_3: 500000 BYTES Arch_6: 2 TB Arch_9: 5500KB

Total: 24 páginas

Materia: NTICx Profesor: GAGLIARDI Jorge [email protected]

24