Fundamentos

Tipos de datos elementales

Básicos Definiciones Fundamentos

Después de haber definido nuestras variables y cómo asignarlas correctamente, todo ello de forma básica y simplista, vamos a empezar a ver los tipos de datos.

Aunque también puedes pasarte por el índice de contenidos y revisar lo publicado y lo que se publicará próximamente.

¿Qué son los tipos de datos?

Los tipos de datos hacen referencia al propio dato (información) sobre la que estamos trabajando. Resumiéndolo de manera sencilla, podríamos decir que es el bloque básico, la unidad mínima con la que vamos a trabajar. Como su propio nombre indica, es el dato y tenemos varios tipos para representarlos.

En este artículo vamos a comentar los tipos de datos más elementales. Éstos son aquellos en los que podemos compararlos con abstracciones que utilizamos en el día a día (números, frases…). Estos datos serán, normalmente, los que más utilizaremos en nuestros programas y sobre lo que construiremos todos los demás tipos de datos.

Tipos de datos habituales

No existe, en el mundo de la programación, un listado de tipos de datos básicos que todos los lenguajes de programación sigan al pie de la letra. Sí que muchos de ellos se repiten, se encuentran en todos ellos y los podemos ver expresados de varias formas. Pero algunos lenguajes detallan más ciertos tipos dependiendo de la forma en que guardan esa información en memoria.

Para no complicarlo excesivamente, vamos a ver los tipos más elementales, con explicaciones pero sin pararnos a detallar excesivamente los posibles cambios en distintos lenguajes de programación. Veremos más concretamente los tipos de datos de PHP en los sucesivos artículos dedicados a ellos.

Caracteres

Pese a lo comentado en el párrafo anterior, empezamos por un tipo que no se encuentra en todos los lenguajes pero que es fácilmente definible. Un carácter es, simplemente, un dato individual. Este dato puede ser representado tanto con números (del 0 al 9), letras (de la a a la z y de la A a la Z) y símbolos (el dólar $, la barra vertical |, el porcentaje %, etc.).

Como podemos ver, se diferencia entre las letras minúsculas y las letras mayúsculas. En realidad son “representaciones” distintas que indican, a nivel de un programa, cosas distintas. No se va a codificar de la misma manera la letra a que la letra A. Aunque a nivel de lectura humana sean iguales, a nivel de “lectura de máquina” son distintas (para saber más, lee sobre el código ASCII).

La razón por la que algunos lenguajes de programación no distinguen o no tienen este tipo de datos la vemos en el siguiente tipo.

Cadenas de caracteres

Una continuación evidente del tipo anterior son las cadenas de caracteres, que son una secuencia de caracteres. Dándole un par de vueltas, podríamos pensar que este tipo es una combinación del anterior. Pero realmente es tan elemental (y mucho más usado que el anterior), que se suele mostrar como un tipo básico.

Respeto a las cadenas de caracteres y pese a que existen una serie de convenciones habituales en cuanto a su descripción y representación, siempre deberemos leer detenidamente las particularidades de cada lenguaje de programación, pues hay ciertas restricciones y diferencias entre ellos.

Ésto es, para cadenas simples, como por ejemplo ‘Debes aplicar el IVA en los precios’ no vamos a encontrar diferencias sustanciales, por no decir ninguna, entre los diferentes lenguajes de programación de alto nivel. Sin embargo, si en esas cadenas queremos introducir caracteres especiales (saltos de línea, algunos símbolos concretos, etc.) sí deberemos mirar qué ocurre específicamente en el lenguaje de programación que usemos.

Como nuestros programas no son editores de texto y el uso que haremos con las cadenas no suele ser, a priori, tan complejo, nos quedaremos por ahora con usos básicos y ampliaremos la información si alguna vez necesitamos hacer usos más concretos.

También podemos utilizar, y la utilizaremos alguna vez, la cadena vacía, representada normalmente de esa forma, vacía, con las comillas simples ” o dobles “”.

Nota
Habitualmente veremos que este tipo de datos se suele nombrar también como string, que es el nombre en inglés sobre el cual se definen las cadenas de caracteres.

Enteros

El tipo de datos entero (que podemos acortar y ver habitualmente como int) es el tipo básico para mostrar números enteros. Hasta aquí todo muy sencillo, pero el mundo de la programación no es una abstracción matemática pura, pues nosotros tenemos limitaciones físicas. Es por ello que hay que matizar esta definición.

Habrá que ir, de nuevo, a profundizar en cada lenguaje de programación para detallar al máximo la información. Pero básicamente (y para nuestros usos habituales) debemos tener claro que existen limitaciones a la hora de representar éste y cualquiera de los otros tipos de datos. En definitiva, que nuestra memoria tiene un límite.

Así, el tipo entero se suele subdividir en varios tipos que pueden almacenar un número más o menos grande dependiendo de cuál tipo sea. La razón es evidente, pues si tuviéramos un ordenador capaz de guardar, por ejemplo, cinco dígitos, podríamos representar desde el valor 0 al valor 99999, pero ya no podríamos guardarnos el número 100000 al utilizar seis dígitos.

Rangos y números negativos

Es más, realmente podríamos utilizar menos números si contamos también el que podemos guardarnos números negativos. Esa definición de si es un número negativo o no ocuparía ya un espacio en nuestra memoria. Así, realmente con cinco dígitos tendríamos para guardar desde el -9999 al 9999.

Los rangos que nos encontramos dependen, hoy en día, de la arquitectura de la plataforma informática. Las plataformas de 32 bits tienen un valor máximo de, aproxidamente, más de dos mil millones (2.000.000.000). Mientras que las plataformas de 64 bits llegan hasta un valor de 9 por 10 elevado a la 18 (9.000.000.000.000.000.000). Para nuestros usos comunes en programas básicos, raro será el llegar a necesitar valores tan enormes.

Curiosidad
Raro, pero no imposible. En 2014 el videoclip “Gangnam Style” en la plataforma YouTube superó el número máximo de reproducciones correspondiente a un entero de 32 bits, con más de dos mil millones de visualizaciones, algo que los creadores de YouTube declararon que jamás hubieran pensado que llegara a ocurrir. Ésto genero un error al no poder expresar el programa el número de visualizaciones después de haberse desbordado. Hoy en día YouTube utiliza un entero de 64 bits.

Para añadir eficiencia, vamos a encontrar lenguajes de programación con tipos específicos de enteros (short int, long int, long long int). O también algunos, como PHP, que trabajan con un límite máximo y se encargan internamente de reservar el espacio para el entero.

También, ciertos lenguajes de programación pueden interactuar con distinta base decimal. Así, nuestra base decimal 10 será la habitual, pero en algunos lenguajes también podríamos almacenar enteros en hexadecimal (base 16), octal (base 8) o binario (base 2).

Decimales (floats)

Hemos visto cómo guardar números enteros, positivos o negativos, pero muchas veces necesitaremos decimales, a los que se les denomina habitualmente como tipo float. Como el mundo de la programación se mueve alrededor del inglés, la notación decimal que se usa es el punto decimal (.) en lugar de la habitual coma decimal que utilizamos los países de habla hispana. Para representarlo en nuestro lenguaje, no se debe dejar ningún espacio entre la parte entera y la decimal.

En algunos lenguajes de programación encontraremos también el tipo double, que no es más que un float con mucha mayor precisión. O, lo que es lo mismo, con mayor cantidad de números decimales.

Avanzado
Pese a que en la gran mayoría de casos no vamos a tener problemas, hay que tener cuidado con la precisión del número con decimales. Debido a las lógicas limitaciones a la hora de guardar un número, éste puede tener una precisión no completa de este número, especialmente cuando hay operaciones que devuelven números decimales con infinitos decimales. Así, el programa puede mostrar como el número 4 un número que ha guardado internamente como 3.9999999999999999999999, por lo que si quisiéramos obtener la parte entera de este número, nos devolvería un 3 y no un 4, siendo un error difícil de detectar.

Booleanos

Si acabas de comenzar en el mundo de la programación, es muy posible que la palabra booleano te suene a chino. Un booleano, también escrito normalmente como bool (o boolean), es un sencillo tipo de datos que nos indica si algo es verdadero o falso. Normalmente, para indicar una variable booleana en nuestros lenguajes de programación se suelen utilizar las constantes true (para algo que es verdadero) o false (para algo que es falso). La mayoría las aceptan tanto en mayúsculas como en minúsculas y se escriben sin comillas.

Este tipo de datos no tiene más secretos, siendo el tipo de datos que se le pasa a una estructura de control, que veremos en siguientes artículos, para verificar si cumple una condición o no. Por ejemplo, para especificar que si estamos en España (condición verdadera) apliquemos el IVA y si no lo estamos (condición falsa) apliquemos lo que debamos aplicar.

De igual forma, valores de otros tipos como pueden ser, por ejemplo: 0, 0.0, “” (cadena vacía) u otros tipos que veremos más adelante pero que simbolizan un cero, se consideran valores false, mientras que cualquier otro valor se considera true.

Resumen de los tipos de datos elementales

Hemos visto los tipos de datos más simples, aquellos sobre lo que construimos toda la base de nuestro programa y que utilizaremos casi sin darnos cuenta. Tanto los caracteres y las cadenas (string), como los enteros (int o integer), decimales (float) y booleanos (bool o boolean) son tipos de datos básicos de los que ya no te separarás.

En próximos artículos veremos cómo definir estos tipos de datos en nuestros ejemplos en código PHP.

Deja un comentario