PDA

Ver la Versión Completa : Tipos de Datos < int > y rango


BC++
26-11-2009, 15:43:43
Hola Amigos del foro:

Hoy jugando con el Builder c++ , encontre quizas una cosa loca.

por lo que yo tenia presente y por lo que me habia enseñado un int
tiene capacidad(rango )-32.768 a 32.767.

la cosa viene que yo cargo una variable A

int A=100000;
y A efectivamente me toma este valor. ¿Cómo puede ser esto posible ? me tendria que dar basura,error...
se perfectamente q esto se puede solucionar con long int, pero la pregunta es si alguien sabe por que pasa esto. Por que quizas mi compilador no funcione bien?.

Es una curiosidad simplemente.. saludos!:)

BC++

Al González
26-11-2009, 18:58:25
En Pascal y otros lenguajes existe un tipo de entero "genérico", que en Delphi lleva por nombre Integer.

El tamaño en bytes de este tipo de dato depende del sistema operativo para el que esté destinado el compilador.

Si tu compilador es para 16 bits (MS-DOS, Windows 3.1, etc.), el tipo entero genérico será de 2 bytes (16 bits, exacto para el rango que señalas). Pero en sistemas de 32 bits (como la mayoría de las versiones de Windows utilizadas actualmente), el tipo entero genérico es de 4 bytes, o sea, 32 bits, los cuales admiten un rango de -2147483648 a 2147483647.

Seguramente este último es el caso del tipo int del compilador de C++Builder para 32 bits.

Saludos.

Al González. :)

escafandra
26-11-2009, 19:43:47
Al González te lo ha explicado brillantemente.

Añadir que un int en un sistema win32 es un DWORD pero con signo, de forma que un UINT es un DWORD (4 bytes == 32 bits)

Saludos.

BC++
26-11-2009, 20:22:30
Amigos:
Mira que interesante!! eso no lo tenia en cuenta;) .Exacto en donde esta corriendo el Builder es en Xp 32. Lo voy a tener muy en cuenta si utilizo Linux.

Muchas gracias!:cool:

BC++

escafandra
26-11-2009, 21:34:17
El tamaño en bytes de este tipo de dato depende del sistema operativo para el que esté destinado el compilador.

Como te indicó Al González no depende del sistema sólo sino del diseño del compilador...

Saludos.