
m0skit0 ya os ha hablado de los diferentes tipos de variables y ya muchos saben como utilizarlos.
pues ahora una pequeña profundización...
aparte de las variables que ya todos conocen como int (números enteros ejm: 1, 2 , 3... ) float (numeros con un punto o coma ejm: 1,23 o 12,3 ...) y char (caracter a, b, c, d...) se pueden especificar mas los tipos de variables.
por ejemplo escribiendo "long int numero;" o solo "long numero;"
esto es necesario si se sabe que el numero va a ser muy grande (mayor que 32767)
por que el valor 32767??? pues facil, para el computador el numero 3 no es "nada", el solo "habla" binario por decirlo de alguna forma. una variable de tipo "int" posee 16 bits de espacio en memoria (16 bits NO bytes) eso significa:
como el ejemplo de las cajas de m0skit0 un int es una caja de 16 y se representa
asi...
xxxx xxxx xxxx xxxx son 16 equis donde esas equis solo pueden ser 1 o 0 (binario)
y el numero mas grande seria:
0111 1111 1111 1111 (16 unos)
de los cuales el 0 (el rojo) dice si es negativo o positivo osea solo nos quedan "15 unos" para el numero mas grande el cual en decimal es:
0 111 1111 1111 1111 = +32767
Para las variables de tipo float (32 Bits) es casi lo mismo primero un ejemplo:
el numero 12.345 también se puede escribir 1.2345*10¹ o como 0.12345*10²
bueno generalizando cualquier "numero con punto" se puede representar asi:
m*b²
en nuestro caso el numero 12.345 también como 0.012345*10³ nuestro m = 012345 b = 10 y el e = 3 (b = base, e = exponente, m = matisse) en C la base es 2 y no 10 y esta establecido por una norma del IEEE.
y el numero se veria asi en memoria:
X XXXX XXXX XXXXXXXXXXXXXXXXXXXXX (solo unos y ceros)
como ya sabemos el primer numero es el signo ("1 = -", "0 = +",)
despues los 8 digitos que siguen son nuestro exponente e y los siguientes 23 nuestra matisse o como se llame.
mas informacion sobre el tema de binario
http://es.wikipedia.org/wiki/Complemento_a_dos
ahora una pequeña tabla:
(creo que esto se cumple en computadores de 32bits solamente la verdad no se)
Tipo de Variable----Tamano en Bits--------Valores posibles
char________________8_______________-127 hasta 127
unsigned char________8_______________0 hasta 255
signed char__________8_______________-127 hasta 127
int_________________16_______________-32767 hasta 32767
unsigned int_________16_______________0 hasta 65535
signed int___________16_______________igual que int
short int____________16_______________igual que int
unsigned short int____16_______________0 bis 65535
signed short int______16_______________igual que short int
long int_____________32___________-2 147 483 647 hasta 2 147 483 647
signed long int_______32_______________igual que long int
unsigned long int_____32_______________0 hasta 4 294 967 295
float_______________32___________exactitud 6 números después del punto
double_____________ 64___________exactitud 10 números después del punto
long double_________128__________ exactitud 10 números después del punto
pregunta por que aparece un char como 8 dígitos se pueden guardar números???
si, pero no es nada recomendable!
bueno la verdad no se si eso será posible en los compiladores de hoy en dia.
char a = 45;
char b = -85;
tampoco lo intente solo trae problemas como el del año 2000

antes tener espacio para tener algo guardado era muy costoso y pues muchas cosas electrónicas en vez de invertir mas dinero en 16 bit para almacenar números, decidieron hacerla fácil y decir ponemos un char como variable y almacenamos números del 00 al 99 (char -127 hasta 127) la gente veía el año 2000 demasiado lejos y pues muchos programas que "sobrevivieron" hasta esa época tuvieron que ser actualizados y cambiar ese char por un int!
espero que todo lo que halla dicho sea cierto

si no acepto correcciones y/o cambios la verdad todo estos es de le que me puede acordar, si alguien tiene preguntas o correcciones serán bienvenidas
Gracias!