Está en la página 1de 21

Tema 4a

Tipos de datos simples

Tipos de datos bsicos


Las variables y constantes deben definir un tipo. Una vez definido el tipo, no se puede cambiar de opinin. El tipo define el comportamiento de los operadores. Tres grandes grupos
Numricos Alfabticos Enumerados
IWI-131 - Tema 4

Tipo de dato nulo


void
Indica nada Es un variable sin tipo definido Cuando una funcin o programa no retorna ningn resultado final se dice que devuelve el tipo void.

IWI-131 - Tema 4

Tipos de datos numricos


Por defecto los nmeros se utilizan en base decimal. Internamente se trabaja con nmeros en base binaria. Dos grandes diferencias
Enteros Reales

Es importante definir el espacio necesario para almacenar un nmero.


IWI-131 - Tema 4

Tipos de datos numricos


Entero
int

Real
float

Real con doble precisin


double

IWI-131 - Tema 4

Modificadores
Para modificar el tamao de almacenamiento se utilizan tipos de datos modificados Modificadores
signed: reserva un bit para el signo unsigned: define solo valores positivos long: utiliza el mayor tamao disponible short: utiliza el menor tamao disponible
IWI-131 - Tema 4

Tipos de datos numricos


int
Tipo de dato entero Valores positivos y negativos Se almacena en 2 o 4 bytes
short int (16 bits): -32.768 a 32.768 long int (32 bits): -2.147.483.648 a 2.147.483.648 unsigned int (32 bits): 0 a 4.294.967.296
Se puede abreviar como unsigned
IWI-131 - Tema 4

Tipos de datos numricos


float
Tipo de dato real Precisin simple Valores positivos y negativos Se almacena en 4 bytes
37 dgitos para parte entera 6 dgitos para parte decimal

No acepta modificadores
IWI-131 - Tema 4

Tipos de datos numricos


double
Tipo de dato real Precisin doble Valores positivos y negativos Se almacena en 8 bytes
37 dgitos para parte entera 10 dgitos para parte decimal

long double (10 bytes)


IWI-131 - Tema 4

Tipos de datos numricos


void main(){ int a = -10; unsigned int b = 10; float c = 10.1; double d = 0.000000001; }

IWI-131 - Tema 4

Tipos de datos alfabticos


Cualquier smbolo escrito se puede considerar alfabtico En rigor
a..z A..Z !.,$%&/)(^*{} etc.

Alfanumricos
Se agregan los dgitos como smbolos, no como nmeros.
IWI-131 - Tema 4

Tipos de datos alfabticos


char
Almacena cualquier carcter normal Ocupa un byte
Permite diferenciar 256 caracteres. signed char: -127 a 127 unsigned char: 0 a 256

El valor almacenado es el cdigo ASCII que representa el carcter


Ej: @ = 64 , \ = 92 , A = 65
IWI-131 - Tema 4

Tipos de datos alfabticos


void main(){ char c1 = 'a'; a 8 char c2 = '8'; @ char c3 = '\n'; 48 49 50 char c4 = 64; char c5 = '0'; char c6 = '1'; char c7 = '2'; printf("%c %c %c %c \n",c1,c2,c3,c4); printf("%i %i %i \n",c5,c6,c7); }
IWI-131 - Tema 4

Conversiones de tipo
Al mezclar distintos tipos, hay que buscar un comn denominador
Un tipo donde todo el resto pueda ser representado

Para esto, hay que convertir los valores involucrados al mayor tipo presente Esto se denomina promocin de tipo
IWI-131 - Tema 4

Conversiones de tipo
Rangos de tipos
long double louble float unsigned long long unsigned int
IWI-131 - Tema 4

Cast (molde)
Se puede forzar al compilador para hacer una conversin de tipos. Se vera su utilidad al estudiar los operadores.
void main(){ double d1=4.7, d2=2.4; int i = ((int)d1)/((int)d2); printf("%d\n", i); }
IWI-131 - Tema 4

Tipos de datos enumerados


A diferencia de nmeros y caracteres no existe necesariamente una relacin de orden. Ej:
Chileno Argentino Peruano Boliviano

En C, las enumeraciones se almacenan como enteros. Se pueden definir sus valores numricos.
IWI-131 - Tema 4

Tipos de datos enumerados


El nombre de la enumeracion

enum nombre {tipo1,tipo2,,tipoN}; Elementos de la enumeracin Palabra reservada

IWI-131 - Tema 4

Tipos de datos enumerados


Valor numrico del elemento enum nombre {tipo1,tipo2=100,tipo3,};

Aumenta de uno en uno Tipo1=0 Tipo2=100 Tipo3=101


IWI-131 - Tema 4

Tipos de datos enumerados


enum nacionalidad {argentino=25, chileno, peruano, boliviano}; void main(){ enum nacionalidad persona1; enum nacionalidad persona2; int chiliviano; persona1 = persona2 = chiliviano printf("%d } chileno; boliviano; = persona1+persona2; + %d\n = %d", persona1, persona2, chiliviano);

26 + 28 = 54
IWI-131 - Tema 4

Fin tema 4a
Tipos de datos simples

También podría gustarte