2010-02-21 26 views
9

¿Cuál es la diferencia entre Int32 y UInt32?¿Cuál es la diferencia entre Int32 y UInt32?

Si coinciden con las capacidades del rango de capacidad, la pregunta es ¿por qué se creó UInt32? ¿Cuándo debo usar UInt32 en lugar de Int32?

+0

¿Conoces la diferencia entre los enteros con y sin signo? –

+0

@Moron: Yen, lo sé. simplemente pensando accidentalmente sobre UInt32 como 'no administrado int32' en lugar de 'unsigned int32'. ¡¡hhaaa !! –

+0

Votar para cerrar como "demasiado localizado", ya que esta pregunta solo es útil para las personas que piensan que UInt32 significa "int32 no administrado". No creo que quede más de esa gente. –

Respuesta

31

UInt32 no permite números negativos. De MSDN:

El tipo de valor UInt32 representa enteros sin signo con valores que van de 0 a 4.294.967.295.

+0

+1 para explicar para qué era la U. – tsilb

9

Un entero es -2147483648 a 2147483647 y un entero sin signo es 0 a 4294967295.

Este artículo podría ayudarle a:

http://www.csharp-station.com/Tutorials/Lesson02.aspx 
1

UInt32 no está firmado. No se puede usar para representar números negativos, pero puede contener números positivos mayores.

4

uint32 es un entero sin signo de 32 bits que significa que puede representar 2^32 números (0-4294967295).

Sin embargo, para representar números negativos, un bit de los 32 bits está reservado para indicar número positivo o negativo. esto te deja con 2^31 números posibles en negativo y también en positivo. el rango resultante es -2147483648 a 2147483647 (el rango positivo incluye el valor 0, por lo tanto, solo 2147483647). esta representación se llama int32.

debe elegir unsigned para los números que no pueden ser negativos por definición, ya que le ofrece un rango más amplio, pero debe tener en cuenta que la conversión desde y hacia int32 no es posible ya que int32 no puede contener el rango de uint32 y viceversa.

Cuestiones relacionadas