Eu sei sobre inte long(números de 32 e 64 bits), mas o que são uinte ulong?
Eu sei sobre inte long(números de 32 e 64 bits), mas o que são uinte ulong?
Respostas:
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
uinte ulongsão as versões não assinadas de inte long. Isso significa que eles não podem ser negativos. Em vez disso, eles têm um valor máximo maior.
Tipo Mín. Máx. Em conformidade com CLS int -2.147.483.648 2.147.483.647 Sim uint 0 4.294.967.295 Não long –9.223.372.036.854.775.808 9.223.372.036.854.775.807 Sim ulong 0 18.446.744.073.709.551.615 No
Para escrever um int literal sem sinal em seu código-fonte, você pode usar o sufixo uou, Upor exemplo 123U.
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:
usignifica unsigned, então ulongé um grande número sem sinal. Você pode armazenar um valor maior em ulongque long, mas não são permitidos números negativos.
Um longvalor é armazenado em 64 bits, com seu primeiro dígito para mostrar se é um número positivo / negativo. enquanto ulongtambé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.
A diferença é que uinte ulongsão tipos de dados sem sinal, o que significa que o intervalo é diferente: Eles não aceitam 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