elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Pregunta sobre variable integer
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pregunta sobre variable integer  (Leído 1,557 veces)
Mario Olivera

Desconectado Desconectado

Mensajes: 108


Ser loco es pensar diferente.


Ver Perfil
Pregunta sobre variable integer
« en: 19 Mayo 2015, 17:13 pm »

 Hola gente, me surgio una pregunta, hice un código que evalua los numeros factoriales del 1 al 20, la variable de tipo int resultado me muestra cada resultado de la multiplicación, se que una variable int si mal no recuerdo va desde -32768 a 32767, pero llega a valer: 2004189184.

Todo esto esta en un ciclo for... la viariable por si sola se transforma en una long int?


En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Pregunta sobre variable integer
« Respuesta #1 en: 19 Mayo 2015, 17:46 pm »

El tipo de unsigned int va desde 0 hasta 4294967296 (32 bits), un int signado va desde -2147483647 hasta 2147483648 creo. 2004189184 cabe perfectamente en un int.

http://en.cppreference.com/w/cpp/language/types


En línea

Seyro97

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
Re: Pregunta sobre variable integer
« Respuesta #2 en: 19 Mayo 2015, 21:43 pm »

El tamaño de una variable de tipo int en memoria depende de cada compilador. Por ejemplo, Las variables de tipo short en mingw me parece que ocupaban 4 bytes, y en el compilador de VS2013 ocupaban 2 bytes (o al revés, no me acuerdo).

Para saber el tamaño de las variables de un cierto tipo, usas algo que se parece a una función: sizeof(tipo o variable) (aunque en realidad no es una función)

Por ejemplo:
Código
  1. #include <iostream>
  2.  
  3. int main() {
  4. long long variable = 0;
  5.  
  6. std::cout << "El tipo de variable 'int' ocupa " << sizeof(int) << " bytes" << std::endl;
  7. std::cout << "La variable 'variable' ocupa en memoria RAM " << sizeof(variable) << " bytes" << std::endl;
  8.  
  9. std::cin.get();
  10. return 0;
  11. }

El resultado saldría (programa compilado en el compilador del VisualStudio 2013):
Código
  1. El tipo de variable 'int' ocupa 4 bytes
  2. La variable 'variable' ocupa en memoria RAM 8 bytes

A la pregunta que inicialmente se ha preguntado en este "post", no, la variable no se convierte automáticamente en tiempo de ejecución cuando se llena. Lo que hace es castearse. Esto quiere decir que si tu representas el número grande como 01001001001100100001001010101101101100001010010101001010010, y lo intentas guardar en una variable de tamaño 4 bytes (32 bits) (y la de antes ocuparía mas de 2 bytes),  entonces se tomarían los primeros 32 ceros y unos y se les asignaría la memoria: 01001001001100100001001010101101101100001010010101001010010

Lo que está en negrita son los primeros 32 estados, y el resto es información que se pierde. Entonces, es como si asignáramos a la variable el valor 101101101100001010010101001010010 en decimal.

Espero que se entienda :P
« Última modificación: 19 Mayo 2015, 21:46 pm por Seyro97 » En línea

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[PYTHON]duda sobre variable [SOLUCIONADO]
Scripting
wACtOr 2 2,520 Último mensaje 18 Noviembre 2010, 23:01 pm
por wACtOr
Duda sobre variable
.NET (C#, VB.NET, ASP)
_CrisiS_ 5 3,081 Último mensaje 30 Enero 2011, 04:21 am
por _CrisiS_
cambiar variable de integer a string
.NET (C#, VB.NET, ASP)
markitus90 6 3,319 Último mensaje 5 Agosto 2012, 20:01 pm
por markitus90
TTF con integer en SDL
Programación C/C++
Puntoinfinito 3 1,989 Último mensaje 13 Mayo 2013, 17:26 pm
por Puntoinfinito
[PREGUNTA] Pregunta sobre la licencia libre GPL
Programación General
Noxware 3 3,400 Último mensaje 23 Abril 2014, 20:18 pm
por Noxware
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines