Eu sei sobre int
e long
(números de 32 e 64 bits), mas o que são uint
e ulong
?
118
Os tipos de dados primitivos prefixados com "u" são versões não assinadas com os mesmos tamanhos de bits. Efetivamente, isso significa que eles não podem armazenar números negativos, mas, por outro lado, podem armazenar números positivos duas vezes maiores que seus equivalentes assinados. As contrapartes assinadas não têm o prefixo "u".
Os limites para int (32 bits) são:
int: –2147483648 to 2147483647
uint: 0 to 4294967295
E por muito tempo (64 bits):
long: -9223372036854775808 to 9223372036854775807
ulong: 0 to 18446744073709551615
uint
eulong
são as versões não assinadas deint
elong
. Isso significa que eles não podem ser negativos. Em vez disso, eles têm um valor máximo maior.Para escrever um int literal sem sinal em seu código-fonte, você pode usar o sufixo
u
ou,U
por exemplo123U
.Você não deve usar uint e ulong em sua interface pública se desejar ser compatível com CLS .
Leia a documentação para mais informações:
A propósito, também há short e ushort e byte e sbyte .
fonte
u
significaunsigned
, entãoulong
é um grande número sem sinal. Você pode armazenar um valor maior emulong
quelong
, mas não são permitidos números negativos.Um
long
valor é armazenado em 64 bits, com seu primeiro dígito para mostrar se é um número positivo / negativo. enquantoulong
também é de 64 bits, com todos de 64 bits para armazenar o número. portanto, o máximo de ulong é 2 (64) -1, enquanto long é 2 (63) -1.fonte
A diferença é que
uint
eulong
são tipos de dados sem sinal, o que significa que o intervalo é diferente: Eles não aceitam valores negativos:fonte