Conozco int
y long
(números de 32 y 64 bits), pero ¿qué son uint
y ulong
?
Conozco int
y long
(números de 32 y 64 bits), pero ¿qué son uint
y ulong
?
Respuestas:
Los tipos de datos primitivos con el prefijo "u" son versiones sin firmar con los mismos tamaños de bits. Efectivamente, esto significa que no pueden almacenar números negativos, pero por otro lado pueden almacenar números positivos dos veces más grandes que sus contrapartes con signo. Las contrapartes firmadas no tienen el prefijo "u".
Los límites para int (32 bits) son:
int: –2147483648 to 2147483647
uint: 0 to 4294967295
Y por mucho tiempo (64 bits):
long: -9223372036854775808 to 9223372036854775807
ulong: 0 to 18446744073709551615
uint
y ulong
son las versiones sin firmar deint
y long
. Eso significa que no pueden ser negativos. En cambio, tienen un valor máximo mayor.
Tipo Mín. Máx. Cumple con CLS int -2,147,483,648 2,147,483,647 Sí uint 0 4.294.967.295 No largo –9,223,372,036,854,775,808 9,223,372,036,854,775,807 Sí ulong 0 18,446,744,073,709,551,615 No
Para escribir un int literal sin firmar en su código fuente, puede usar el sufijo u
o, U
por ejemplo 123U
.
No debe usar uint y ulong en su interfaz pública si desea cumplir con CLS .
Lea la documentación para obtener más información:
u
significa unsigned
, también lo ulong
es un gran número sin signo. Puede almacenar un valor mayor en ulong
que long
, pero no se permiten números negativos.
Un long
valor se almacena en 64 bits, con su primer dígito para mostrar si es un número positivo / negativo. mientras ulong
que también es de 64 bits, con todos los de 64 bits para almacenar el número. por lo que el máximo de ulong es 2 (64) -1, mientras que long es 2 (63) -1.
La diferencia es que uint
y ulong
son tipos de datos sin firmar, lo que significa que el rango es diferente: no aceptan valores negativos:
int range: -2,147,483,648 to 2,147,483,647
uint range: 0 to 4,294,967,295
long range: –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
ulong range: 0 to 18,446,744,073,709,551,615