Conosco int
e long
(numeri a 32 e 64 bit), ma cosa sono uint
e ulong
?
Conosco int
e long
(numeri a 32 e 64 bit), ma cosa sono uint
e ulong
?
Risposte:
I tipi di dati primitivi con prefisso "u" sono versioni senza segno con le stesse dimensioni di bit. In effetti, questo significa che non possono memorizzare numeri negativi, ma d'altra parte possono memorizzare numeri positivi due volte più grandi delle loro controparti firmate. Le controparti firmate non hanno il prefisso "u".
I limiti per int (32 bit) sono:
int: –2147483648 to 2147483647
uint: 0 to 4294967295
E per lungo (64 bit):
long: -9223372036854775808 to 9223372036854775807
ulong: 0 to 18446744073709551615
uint
e ulong
sono le versioni non firmate di int
e long
. Ciò significa che non possono essere negativi. Invece hanno un valore massimo maggiore.
Tipo Min Max conforme a CLS int -2.147.483.648 2.147.483.647 Sì uint 0 4.294.967.295 n lungo –9.223.372.036.854.775.808 9.223.372.036.854.775.807 Sì ulong 0 18.446.744.073.709.551.615 n
Per scrivere un int letterale senza segno nel codice sorgente puoi usare il suffisso u
o, U
ad esempio 123U
.
Non dovresti usare uint e ulong nella tua interfaccia pubblica se desideri essere conforme a CLS .
Leggi la documentazione per maggiori informazioni:
u
significa unsigned
, quindi ulong
è un numero elevato senza segno. È possibile memorizzare un valore più grande in ulong
quanto long
, ma non i numeri negativi permesso.
Un long
valore viene memorizzato a 64 bit, con la sua prima cifra per mostrare se è un numero positivo / negativo. mentre ulong
è anche a 64 bit, con tutti i 64 bit per memorizzare il numero. quindi il massimo di ulong è 2 (64) -1, mentre long è 2 (63) -1.
La differenza è che uint
e ulong
sono tipi di dati senza segno, il che significa che l'intervallo è diverso: non accettano valori negativi:
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