Diferente a como funciona en algunos lenguajes de mas alto nivel (java, python), el manejo de los tipos de datos en c++ se debe tratar con mucho cuidado, pues las variables tienen un valor maximo que soportan, y si el valor es superado, se produce un overflow arruinando el resultado del programa.
Los tamaños de los datos que puede soportar un tipo de variable se muestran a continuacion.
Tipo | Tamaño | Valores |
---|---|---|
unsigned char | 8 bits | 0 a 255 |
char | 8 bits | -128 a 127 |
short int | 16 bits | -32,768 a 32,767 |
unsigned int | 32 bits | 0 a 4,294,967,295 |
int | 32 bits | -2,147,483,648 a 2,147,483,647 |
unsigned long | 32 bits | 0 a 4,294,967,295 |
enum | 16 bits | -2,147,483,648 a 2,147,483,647 |
long | 32 bits | -2,147,483,648 a 2,147,483,647 |
float | 32 bits | 3.4 x 10^-38 a 3.4 x 10^38(6 dec) |
double | 64 bits | 1.7 x 10^-308 a 1.7*10^308(15 dec) |
long double | 80 bits | 3.4 x 10^-4932 a 1.1 x 10^+4932 |
Pero, que pasa si aun necesitamos manejar numero mas grandes, o con mayor presicion?, pues gracias a la moduridad de c++ se puede crear nuevos tipos de datos,uno de estos es CLN (Class Library for Numbers), este conjunto de clases permite manejar numeros extermadamente grandes, flotantes con una muy buena presicion, como si fuera poco, incluye gran cantidad de funciones matematicas, tiene sobrecargados gran cantidad de operadores, por lo cual el manejo es muy simple.
Personalmente he usado numeros con + de 3000 digitos sin ningun problema.
Enlace a documentacion de CLN: http://www.ginac.de/CLN/cln.html
Puedes bajar el codigo fuente de la pagina, o si usas algun derivado de debian, instalarlo mediante sudo apt-get install libcln-dev
Recuerda que cuando quieras enlazar un programa que use esta libreria, debes agregar al final -lcln.
Mas informacion: http://www.programacionfacil.com/cpp:tipos_de_datos
http://www.ginac.de/CLN/cln.html
Nunca use números grandes en mi amado C++, pero ahora lo requiero, así que me puse a buscar por internet y de todas las opciones que vi esta es la que más me gustó. Instalable en mi debian con un simple apt-get, gracias por la publicación.
ResponderEliminarHola pues creo que c++ no sirve para crear un cajero automático simple ahí con sumas y restas con cantidades grandes, ejemplo si tengo una variable con banco = 1000.0000; esto no funciona vale por 100, si yo quisiera retirar 20.000; solo hace valer 20, entonces creo que esa es una limitarte de c++, y no lo encontré este tipo de info ni el libros ese dato. si alguien tiene ese dato seria bueno conocerlo lo intente con todo tipo de definición de variables y nada. saludos
ResponderEliminarme sucede el problema de convertir el numero 89 en capicua, es un numero tan largo que c++ no lo puede leer
ResponderEliminar