3.1. Objetivos del tema.
Hemos visto en el tema anterior como un
programa es algo muy fácil, claro el ejemplo era muy fácil, pero se trataba de
dejar visto, que es así.
Ahora vamos a ver que en el tema anterior
hemos utilizado datos, pero que en realidad los datos son algo más.
3.2. Introducción.
Los datos en un programa es uno de los
elementos vitales del mismo, pero en la vida cotidiana los utilizamos a diario
también, si nos fijamos en los datos que utilizamos, nos daremos cuenta que son
letras y números, números solo o solo letras.
También, cuando a lo largo del día
alguien nos da un dato pequeño, normalmente no memorizamos, pero si es largo o
complejo, lo apuntamos, ¿Por qué?, por que tenemos nuestras limitaciones, por
la edad, por lo despistados que somos etc..
Los ordenadores también disponen de
memoria, y también manejan información, datos, y en función de lo voluminosos
que sean los datos, los almacenarán en la memoria central del ordenador, o en
un soporte, en el disco duro o lo grabaremos en un disquete o disco compacto,
etc..
3.3. Los tipos de datos.
Informáticamente los datos son de dos
tipos básicos, números y letras, o numéricos y alfanuméricos.
Con los datos numéricos realizamos
operaciones de cálculo y con los alfanuméricos representamos información y la
almacenamos para el uso en el programa.
El dato numérico utilizará en memoria un
espacio adecuado para el valor que puede tomar.
Como la memoria en un ordenador es vital,
conviene aprovecharla al máximo.
Un valor numérico puede tomar un valor
desde cero, olvidemos los números negativos, hasta ...., hasta un valor que es
imposible escribir, o sea, infinito.
Pero eso en un ordenador es imposible de
asumir.
Por lo tanto lo que hacemos es que
creamos rangos, y a cada rango le asignamos un tipo de dato.
¿Cómo se crean los rangos?
Pensemos en que un ordenador solo sabe
utilizar un uno y un cero, ausencia de voltaje y presencia de voltaje
eléctrico, sistema binario, pero nosotros utilizamos lo que denominamos el
sistema decimal, es decir diez elementos en lugar de dos.
En este sistema, cada uno de los dígitos
utilizados se denomina bit, (Binary digit).
Por lo tanto para almacenar un número
del cero al nueve, necesitaremos una combinación de ceros y unos que permitan
representar cada uno de esos números, y como son diez, se necesitan diez
combinaciones.
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
Esa sería la combinación para
representar los diez dígitos del cero al nueve.
Cada uno de esos dígitos los denominamos
bits, por lo tanto el cinco necesita tres bits para representarlo.
Si siguiéramos esa secuencia podríamos
ir creando todos los números decimales en binario.
Estos bit se agrupan en grupos de
1 bit.
4 bit un cuarteto.
8 bit un octeto, un octeto es un byte.
1024 bytes, es un Kilobyte. Kb.
1024 Kb son un Megabyte, Mgb
1024 Mgb. son un Gigabyte.
Si nos preguntamos porque se usa 1024 en
lugar de 1000, la respuesta es que hay que buscar bloques de 8 bits, que son un
byte, 1024 es 2 10 .
Los datos alfanuméricos no tiene
problema en su representación, pues cada carácter ocupa un byte en memoria,
tantos caracteres tantos bytes, dentro de las limitaciones del lenguaje de
programación que se este utilizando.
El motivo de utilizar un byte para cada
carácter es que el número de caracteres máximo distintos en un idioma latino, o
anglosajon, tomando los números como caracteres independientes, incluidos
letras acentuadas y caracteres de puntuación no supera los 256, con un byte
podemos obtener 256 combinaciones distintas, del 0 al 255.
Actualmente se utiliza un sistema de dos
bytes que de forma unilateral implanto una empresa de software, por lo cual,
aunque nosotros usemos un carácter para almacenarlo se utilizarían dos.
Esto permite que se puedan representar
hasta 65535 combinaciones de símbolos, necesario para los lenguajes orientales,
que usan símbolos en lugar de letras.
Pero los números son datos compactos, no
se pueden andar separando de forma arbitraria, ya que hay que realizar
operaciones de cálculo con ellos, por lo tanto han de ocupar uno, dos o x
bytes, pero contiguos, para así poder operar matemáticamente.
Por lo tanto los números que podemos
representar en un sistema dependerá del número de bytes que pongamos juntos
para representar ese número.
Por ejemplo si ponemos un solo byte a
disposición del sistema, solo podremos representar números entre el 0 y el 255.
Un byte son 8 bits, las combinaciones son 28 que es igual a 256, que
son los números que podemos representar.
Como eso es muy pobre, el rango más
pequeño que se utiliza es el de dos bytes, que permiten manejar números entre
–32767 y + 32768, como números enteros.
Aunque eso parece un rango muy pequeño,
en programación los números enteros se usan para contar cosas, y en un
porcentaje muy elevado de casos es suficiente ese rango, siempre que se haga un
uso adecuado de los recursos.
Claro la pregunta sale sola ¿ pero
números hay .... ? , claro que hay más, pero esos ya se han dado en clasificar
en otro tipo de datos, los llamados números reales.
Los números reales se representan con
otro sistema, no creeremos que se puede asignar espacio en memoria para el
número 12345678901234567890, o bien para el 0,12345678901234567890, eso no es
factible.
Por lo tanto en función del tamaño del
espacio usado en memoria se puede abarcar más o menos valores.
Esta tabla muestra los valores máximos y
mínimos en función del número de bytes utilizados en lun lenguaje de
programación..
Pensemos que hace años un número entero
utilizaba dos bytes, ahora en los lenguajes modernos utiliza 4, por lo que se
aumenta el número de valores posibles válidos.
Pero para representar las letras sucede
lo mismo, también hay que buscar una combinación de ceros y unos.
Y como además hay que representar otra
serie de caracteres de control que se utilizan en otras tareas, todos y cada
uno de ellos necesita de una representación en binario de su valor en el
sistema o idioma que nosotros utilizamos.
La suma de todos esos números, letras y
caracteres de control aproximadamente es de unos 170 elementos.
No hay comentarios:
Publicar un comentario