2.3 Tipos de Datos en Mikroc
En el lenguaje C, los datos tienen un tipo, o sea, cada dato utilizado en el programa debe tener su tipo especificado. Esto permite al compilador conocer el tamaño de dato (número de bytes requerido en la memoria) y su representación. Hay varios tipos de datos que se pueden utilizar en el lenguaje de programación mikroC dependiendo del tamaño de dato y del rango de valores. La tabla muestra el rango de valores que los datos pueden tener cuando se utilizan en su forma básica.
TIPO DE DATO |
DESCRIPCIÓN |
TAMAÑO (NÚMERO DE BITS) |
RANGO DE VALORES |
char |
Texto (caracteres) |
8 |
de 0 a 255 |
int |
Valores enteros |
16 |
de -32768 a 32767 |
float |
Valores en punto flotante |
32 |
de ±1.17549435082·10-38 a ±6.80564774407·1038 |
double |
Valores en punto flotante de doble precisión |
32 |
de ±1.17549435082·10-38 a ±6.80564774407·1038 |
*Debido a las limitaciones impuestas por el hardware del microcontrolador, es imposible alcanzar una mayor precisión de datos que la del tipo float. Por eso, el tipo double en mikroC equivale al tipo float.
Al añadir un prefijo (calificador) a cualquier tipo de dato entero o carácter, el rango de sus posibles valores cambia así como el número de los bytes de memoria necesarios. Por defecto, los datos de tipo int son con signo, mientras que los de tipo char son sin signo. El calificador signed (con signo) indica que el dato puede ser positivo o negativo. El prefijo unsigned indica que el dato puede ser sólo positivo. Note que el prefijo es opcional.
TIPO DE DATO |
TIPO DE DATO CON PREFIJO |
TAMAÑO (NÚMERO DE BITS) |
RANGO DE VALORES |
char |
signed char |
8 |
de -128 a 128 |
int |
unsigned int |
16 |
de 0 a 65535 |
short int |
8 |
de 0 a 255 |
signed short int |
8 |
de -128 a 127 |
long int |
32 |
de 0 a 4294967295 |
signed long int |
32 |
de -2147483648 a 2147483647 |
Tipo entero (int)
Un entero es un número sin parte fraccionaria que puede estar expresado en los siguientes formatos:
- Hexadecimal (base 16): el número empieza con 0x (o 0X). Los enteros hexadecimales consisten en los dígitos (de 0 a 9) y/o las letras (A, B, C,D, E, F). Por ejemplo: ‘0x1A’.
- Decimal (base 10): el número consiste en los dígitos (de 0 a 9). El primer dígito no puede ser 0. En este formato, se puede introducir el signo de número (‘+’ o ‘-’). Por ejemplo: 569, -25, +1500.
- Octal (base 8): los números se representan a base 8 utilizando sólo 8 dígitos (de 0 a 7). Los enteros octales empiezan con 0. Por ejemplo: ‘056’.
- Binario: cuando un entero empieza con 0b (o 0B) se representan como una serie de bits (‘0’ y ‘1’). Por ejemplo: 0B10011111
0x11 // formato hexadecimal equivale a decimal 17
11 // formato decimal
-152 // formato decimal
011 // formato octal equivale a decimal 9
0b11 // formato binario equivale a decimal 3
Tipo punto flotante (float)
El tipo punto flotante (float) se utiliza para los números reales con el punto decimal. Los datos de tipo float se pueden representar de varias maneras. Un dato float es siempre consigno (signed).
0. // = 0.0
-1.23 // = -1.23
23.45e6 // = 23.45 * 10^6
2e-5 // = 2.0 * 10^-5
3E+10 // = 3.0 * 10^10
.09E34 // = 0.09 * 10^34
Tipo carácter (char)
El tipo char es considerado como un entero por el compilador. No obstante, se utiliza normalmente para los datos de tipo carácter. Un dato de tipo carácter está encerrado entre comillas y codificado en un carácter ASCII.
59 // entero
'p' // carácter ASCII 'p'
Una secuencia de caracteres es denominada cadena (string). Las cadenas están encerradas entre comillas dobles, por ejemplo:
"Presione el botón RA0"