Je connais int
et long
(nombres 32 bits et 64 bits), mais que sont uint
et ulong
?
Les types de données primitifs précédés de "u" sont des versions non signées avec les mêmes tailles de bits. Cela signifie effectivement qu'ils ne peuvent pas stocker de nombres négatifs, mais qu'ils peuvent en revanche stocker des nombres positifs deux fois plus volumineux que leurs homologues signés. Les homologues signés n'ont pas de préfixe "u".
Les limites pour int (32 bits) sont les suivantes:
int: –2147483648 to 2147483647
uint: 0 to 4294967295
Et pour longtemps (64 bits):
long: -9223372036854775808 to 9223372036854775807
ulong: 0 to 18446744073709551615
uint
et ulong
sont les versions non signées de int
et long
. Cela signifie qu'ils ne peuvent pas être négatifs. Au lieu de cela, ils ont une valeur maximale plus grande.
Type Min Max Conforme au CLS Int -2 147 483 648 2 147 483 647 Oui Uint 0 4 294 967 295 Non [.____] long 30h30 .____.]
Pour écrire un entier non signé dans votre code source, vous pouvez utiliser le suffixe u
ou U
, par exemple 123U
.
Vous ne devez pas utiliser uint et ulong dans votre interface publique si vous souhaitez être conforme à CLS .
Lisez la documentation pour plus d'informations:
u
signifie unsigned
, donc ulong
est un grand nombre sans signe. Vous pouvez stocker une plus grande valeur dans ulong
que long
, mais aucun nombre négatif n'est autorisé.
Une valeur de long
est stockée en 64 bits, son premier chiffre indiquant s'il s'agit d'un nombre positif/négatif. tandis que ulong
est également en 64 bits, avec tous les 64 bits pour stocker le nombre. le maximum d’ulong est donc 2 (64) -1, alors que long est 2 (63) -1.
La différence est que uint
et ulong
sont des types de données non signés, ce qui signifie que la plage est différente: ils n'acceptent pas les valeurs négatives:
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