22 Votos

C#/.NET: Diferencia entre int y uint

Pregunta de Invitado | 30/10/2021 a las 17:15

Sé la diferencia entre los tipos de datos short, int y long (números enteros / integer de 16 bits, de 32 bits y de 64 bits) en C#. Sin embargo, recientemente he reconocido algunos otros tipos de enteros en un código de ejemplo: ushort, uint y ulong - por lo que parece ser los tipos normales con una u adicionales.

¿Qué se supone que esos tipos son? He jugado un poco con ellos y parecen funcionar como enteros habituales. Entonces, ¿dónde está la diferencia?

ResponderPositivoNegativo
1Mejor Respuesta1 Voto

El "u" significa "unsigned" (sin firmar). Por lo tanto, esos tipos son integers que no tienen un signo y, por lo tanto, solo pueden mantener valores positivos.

La ventaja de los enteros sin firmar es que pueden aceptar números mucho más altos en la misma longitud del bit.

Aquí puede ver los valores mínimos y máximos de los tipos:

TipoBitsMinMax
sbyte8-128127
byte80255
short16-32.76832.767
ushort16065.535
int32-2.147.483.648-2.147.483.647
uint3204.294.967.295
long64-9.223.372.036.854.775.8089.223.372.036.854.775.807
ulong64018.446.744.073.709.551.615

Como puede ver, en la misma longitud del bit, los enteros sin firmar pueden tomar el doble de valores grandes. Siempre debe usar tales tipos en un caso en el que sepa que un valor nunca se volverá negativo, pero puede volverse muy grande (y, por lo tanto, puede alcanzar los límites del rango disponible).
29/10/2021 a las 02:59

ResponderPositivo Negativo
Responder

Temas Relacionados

Aviso Importante

Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.

Participar

Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.