2010-02-21 3 views
9

Quelle est la différence entre Int32 et UInt32?Quelle est la différence entre Int32 et UInt32?

Si elles sont les mêmes avec des capacités de capacité, la question est pour quelle raison UInt32 a été créé? Quand devrais-je utiliser UInt32 au lieu de Int32?

+0

Connaissez-vous la différence entre les entiers signés et non signés? –

+0

@Moron: Yen je sais. juste penser accidentellement à UInt32 comme 'nonmanaged int32' au lieu de 'unsigned int32'. hhaaa !! –

+0

Vote pour fermer comme "trop ​​localisé", car cette question n'est utile que pour les personnes qui pensent que UInt32 signifie "int32 non géré". Je ne pense pas qu'il en reste d'autres. –

Répondre

31

UInt32 n'autorise pas les nombres négatifs. Le type de valeur UInt32 représente des entiers non signés dont les valeurs vont de 0 à 4 294 967 295 025.

+0

+1 pour expliquer ce que le U était pour. – tsilb

9

Un entier est -2147483648 à 2147483647 et un entier non signé est de 0 à 4294967295.

Cet article pourrait vous aider:

http://www.csharp-station.com/Tutorials/Lesson02.aspx 
1

UInt32 est non signé. Il ne peut pas être utilisé pour représenter des nombres négatifs mais peut contenir de plus grands nombres positifs.

4

uint32 est un entier non signé avec 32 bits, ce qui signifie que vous pouvez représenter 2^32 nombres (0-4294967295). Toutefois, pour représenter des nombres négatifs, un bit des 32 bits est réservé pour indiquer un nombre positif ou négatif. cela vous laisse avec 2^31 nombres possibles dans le négatif et aussi dans le positif. la plage résultante est de -2147483648 à 2147483647 (la plage positive inclut la valeur 0, donc seulement 2147483647). cette représentation est appelée int32. Vous devez choisir non signé pour les nombres qui ne peuvent pas être négatifs par définition car il vous offre une plage plus large, mais vous devez garder à l'esprit que la conversion de et vers int32 n'est pas possible car int32 ne peut pas contenir la plage de uint32 et vice versa.

Questions connexes