El computador, como máquina de tratamiento de información, manipula diferentes tipos de datos.
Dato
Un dato es un elemento de información que puede tomar un vaIor entre varios posibles. Si un dato no cambia es un dato constante y si cambia es un dato variable. Los valores de los datos pueden ser de diferentes clases o tipos. En general un dato sólo puede tomar valores de una clase. Una cantidad solo puede ser un número.
Es importante destacar que el concepto de tipo es algo abstracto, e independiente de los símbolos concretos que se empleen para representar los valores. Por ejemplo los meses del año se puede representar por su nombre en letras con números según su orden, marzo es el mes 3 y agosto el mes 8.
Con más precisión se habla de tipos abstractos de datos, que identifican tanto el conjunto de valores que pueden tomar los datos como las operaciones que se pueden hacer con ellos.
Tenemos tres tipos de valores, los números para representar cantidades y orden, los caracteres que son letras y símbolos para operaciones y finalmente las cadenas de caracteres que representan el texto
TIPO
Tipo Entero int
Son valores numéricos sin parte decimal, que pueden ser negativos o positivos entorno al cero y que forman también parte de los valores reales. Debido a la memoria disponible, su rango no es infinito, sino que va depender del procesador, la memoria, el sistema operativo, etc.
Este tipo lleva asociado una serie de operaciones que se pueden realizar con los tipos int
Suma de enteros para los que usamos el operador +
Resta de enteros para los que usamos el operador -
Multiplicación de enteros para los que usamos el operador *
División de enteros para los que usamos el operador /
Módulo de enteros para los que usamos el operador % (es el valor que da de resto tras hacer
la división de dos enteros) Ejempo 7/3 = 2 y da como resto 1, pues el módulo de 7%3 = 1)
Identidad de un entero para los que usamos el operador +
Cambio de signo de un entero para los que usamos el operador -
Cuando se realiza una operación se debe tener en cuenta el rango de valores disponible en la plataforma, porque se puede producir un resultado demasiado grande y a pesar de que la operación es correcta, dará como resultado un error. Una plataforma de 16bits solo admite números entre el -32768 y 32767, si el resultado está fuera de ese rango dará error.
Tipo Entero sin signo unsigned int
Es igual que el tipo int, pero con la diferencia que no tiene signo y su rango va desde 0 a 65535.
Tipo Entero byte byte
Son valores numéricos sin parte decimal, con un reducido rango para no ocupar mucha memoria si el valor que va a almacenar esta dentro de su rango que va de 0 a 255.
Tipo Entero long
Son valores numéricos sin parte decimal, totalmente igual que un int, lo único que varía es el rango de valores, que es mucho mayor va desde -2.147.483.648 a 2.147.483.647 y como peculiaridad cuando se usa en el código hay que añadir al final la letra L.
Tipo Entero unsigned long
Es igual que el tipo long, pero sin signo, es decir sin negativos y su diferencia es el rango que va desde 0 a 4.294.967.295 y como peculiaridad cuando se usa en el código hay que añadir al final las letras UL.
Tipo Entero long long
Son valores muy poco utilizados por que son extremadamente grandes y ocupan muchísima memoria sobre todo en arduino, totalmente igual que un long, lo único que varía es el rango de valores, que es mucho mayor y como peculiaridad cuando se usa en el código hay que añadir al final la letra LL.
Tipo Entero unsigned long long
Son valores muy poco utilizados por que son extremadamente grandes y ocupan muchísima memoria sobre todo en arduino, Es igual que el tipo unsigned long y su diferencia es el rango que es muchísimo mayor y como peculiaridad cuando se usa en el código hay que añadir al final las letras ULL.
Tipo Decimal float
Son valores numéricos con parte decimal, que pueden ser negativos o positivos entorno al cero y que forman también parte de los valores reales. Para separar la parte entera de la parte decimal se utiliza el punto. por tanto no representan valores exactos. Para representar valores exacto se utilizará el número de la parte entera, seguida del punto y un cero.
int 5 => float 5.0
El rango también es limitado y depende de la plataforma y de la precisión que se quiera dar, es decir, depende del número de decimales que se ponga.
No admite números irracionales como Pi solo sus aproximaciones que estén dentro del rango de los float. Y como peculiaridad cuando se usa en el código hay que añadir al final la letra F.
Los float también admiten valores en forma de notación científica con mantisa y un factor de escala.
Ejemplo
1.23E18 => 1,23·1018 32,5E-12 => 32,5·10-12 -1.23E18 => -1,23·1018 - 32,5E-12 => -32,5·10-12
La operaciones con decimales son todas las misma que para int a excepción del módulo que al haber decimales, no hay resto.
Tipo Decimal double
Es exactamente igual que un float pero con mayor rango, y no necesita letras al final del número. En Arduino no se usa por la limitación de memoria disponible.
Tipo char
Su uso suele ser para caracteres alfanumérico
char c = 'A';
en este caso la variable c de tipo char almacena el carácter A, pero en realidad el carácter A es un número entero de la tabla ASCII, el 65. Por eso también se puede utilizar el tipo char para números enteros y su rango va desde el -127 a 128.
En el caso anterior
char c = 'A';
c +1;
printf c;
se imprimirá B
Dependiendo del valor que se le asigne a la variable char almacenará un carácter si va entre comillas simple o almacenará un número enter.
Tipo String
Su uso suele ser para cadenas de caracteres como palabras y frase, se tienen que poner siempre entre comillas dobles. Por ejemplo una variable tipo String que guarde en su interior una palabra sería de la siguiente forma:
Su uso suele ser para cadenas de caracteres como palabras y frase, se tienen que poner siempre entre comillas dobles. Por ejemplo una variable tipo String que guarde en su interior una palabra sería de la siguiente forma:
String clave = "palabra secreta 22";
La variable clave puede guardar en su interior toda la cadena de caracteres, en este caso 22 no tiene valor matemático sino que se trata de puro texto.
Tipo bool
Solo admite dos valores true ( verdadero) y false (falso) se usa muchísimo este tipo de datos para las estructuras de control. Si una condición es verdadero se ejecuta el código y si es falso no se ejecuta nada. Si la condición está en una variable, esta es de tipo bool y almacenará en su interior un true o un false.
Tipo void
Su uso suele ser para funciones que no devuelve resultados. Void es que no tiene valor, no devuelve valor.