62 votos

¿Cuál es la diferencia entre INT, INT16, INT32 e INT64?

Necesito saber la diferencia de INT , INT16 , INT32 y INT64 aparte de su tamaño?

110voto

akash88 Puntos 2399

Todos los tipos de enteros tienen diferentes rangos de capacidad de almacenamiento

Tipo Capacidad

   Int 16 -- (-32,768 to +32,767)

   Int 32 -- (-2,147,483,648 to +2,147,483,647)

   Int 64 -- (-9,223,372,036,854,775,808 to +9,223,372,036,854,775,807)

INT Y INT32 son de hecho sinónimos; int será un poco más familiar, Int32 hace que los 32 bits sean más explícitos para los que leen su código. Yo me inclinaría a usar int donde sólo necesito 'un entero', Int32 donde el tamaño es importante (código criptográfico, estructuras) para que los futuros mantenedores sepan que es seguro ampliar un int si es apropiado, pero deberían tener cuidado de cambiar los int32 de la misma manera. El código resultante será idéntico: la diferencia es puramente de legibilidad o de apariencia del código.

55voto

JaredPar Puntos 333733

La única diferencia real aquí es el tamaño. Todos los tipos de int aquí son valores enteros con signo que tienen diferentes tamaños

  • Int16 2 bytes
  • Int32 y int : 4 bytes
  • Int64 8 bytes.

Hay una pequeña diferencia entre Int64 y el resto. En una plataforma de 32 bits se asigna a un Int64 no se garantiza que el lugar de almacenamiento sea atómico. Está garantizado para todos los demás tipos.

7voto

Praveen Puntos 114

Según el libro de Jeffrey Richter (uno de los contribuyentes del desarrollo del marco .NET) 'CLR via C#':

int es un tipo primitivo permitido por el compilador C#, mientras que Int32 es el tipo de biblioteca de clases de marco (disponible en todos los idiomas que cumplen con CLS). De hecho, int traduce a Int32 durante la compilación.

También,

En C#, largos mapas a System.Int64, pero en una programación diferente idioma, largo podría mapear a la Int16 o la Int32. De hecho, C++/CLI hace tratar el tiempo como el Int32.

De hecho, la mayoría de los lenguajes (.NET) ni siquiera tratarán el tiempo como una palabra clave y no compilar el código que lo utiliza.

He visto a este autor, y a mucha literatura estándar en .NET prefiriendo los tipos FCL (es decir, Int32) a los tipos primitivos específicos del lenguaje (es decir, int), principalmente en tales preocupaciones de interoperabilidad.

6voto

duskwuff Puntos 69245

Nada. La única diferencia entre los tipos es su tamaño (y, por lo tanto, el rango de valores que pueden representar).

6voto

Sunil Kumar B M Puntos 1441
  1. int y int32 son uno y el mismo (entero de 32 bits)
  2. int16 es un int corto (2 bytes o 16 bits)
  3. int64 es el tipo de datos largo (8 bytes o 64 bits)

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X