Qual é a diferença entre int32 e uint32?
Pergunta
Qual é a diferença entre Int32
e UInt32
?
Se eles são os mesmos com recursos de alcance de capacidade, a questão é por que motivo UInt32
foi criado? Quando devo usar UInt32
ao invés de Int32
?
Solução
O UINT32 não permite números negativos. A partir de Msdn:
O tipo de valor UINT32 representa números inteiros não assinados com valores que variam de 0 a 4.294.967.295.
Outras dicas
Um número inteiro é -2147483648 a 2147483647 e um número inteiro não assinado é de 0 a 4294967295.
este artigo pode ajudá -lo.
O UINT32 é um número inteiro não assinado com 32 bits, o que significa que você pode representar 2^32 números (0-4294967295).
No entanto, para representar números negativos, um bit dos 32 bits é reservado para indicar um número positivo ou negativo. Isso deixa você com 2^31 números possíveis no negativo e também no positivo. O intervalo resultante é -2147483648 a 2147483647 (o intervalo positivo inclui o valor 0, portanto, apenas 2147483647). Esta representação é chamada INT32.
Você deve escolher não assinado para números que não conseguem ser negativos por definição, pois oferecem um alcance mais amplo, mas deve ter em mente que a conversão de e para Int32 não é possível, pois o INT32 não consegue manter o alcance de UINT32 e vice -versa .
O UINT32 não é assinado. Ele não pode ser usado para representar números negativos, mas pode conter números positivos maiores.