Ich weiß über int
und long
(32-Bit- und 64-Bit-Nummern), aber was sind uint
und ulong
?Was ist der Unterschied zwischen "int" und "uint"/"long" und "ulong"?
Antwort
Die primitiven Datentypen mit dem Präfix "u" sind vorzeichenlose Versionen mit derselben Bitgröße. Effektiv bedeutet dies, dass sie keine negativen Zahlen speichern können, aber auf der anderen Seite können sie positive Zahlen speichern, die doppelt so groß sind wie ihre signierten Gegenstücke. Die signierten Gegenstücke haben kein vorangestelltes "u".
Die Grenzwerte für int (32 Bit) sind:
int: –2147483648 to 2147483647
uint: 0 to 4294967295
Und für lange (64 Bit):
long: -9223372036854775808 to 9223372036854775807
ulong: 0 to 18446744073709551615
uint
und ulong
sind die unsignierten Versionen von int
und long
. Das bedeutet, dass sie nicht negativ sein können. Stattdessen haben sie einen größeren Maximalwert.
Type Min Max CLS-compliant int -2,147,483,648 2,147,483,647 Yes uint 0 4,294,967,295 No long –9,223,372,036,854,775,808 9,223,372,036,854,775,807 Yes ulong 0 18,446,744,073,709,551,615 No
Um eine wörtliche unsigned int in Ihrem Quellcode schreiben Sie das Suffix u
oder U
zum Beispiel 123U
verwenden können.
Sie sollten nicht Uint und ulong in Ihrer öffentlichen Schnittstelle verwenden, wenn Sie CLS-Compliant sein möchten.
die Dokumentation für weitere Informationen lesen:
By the way, ist es auch short und ushort und byte und sbyte.
Das ist interessant - was meinst du mit CLS-konform? Der Link verweist auf die MSDN-Dokumentation für int. Wenn mit "CLS" meinst du C# -Sprachespezifikation, dann verstehe ich nicht - die Spezifikation beschreibt klar sowohl Uint und ulong (Abschnitt 1.3) –
@Isak Savo: Fester Link, danke für das Aufzeigen des Fehlers. –
@Isak Savo: Es ist wichtig, CLS-kompatibel zu sein, wenn Sie eine Schnittstelle schreiben, die von anderen .NET-Sprachen als C# verwendet werden kann. –
Der Unterschied besteht darin, dass die uint
und ulong
unsigned Datentypen Bedeutung sind Der Bereich ist anders: Sie akzeptieren keine negativen Werte:
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
u
bedeutet unsigned
, also ulong
ist eine große Zahl ohne Vorzeichen. Sie können einen größeren Wert in ulong
als long
speichern, aber keine negativen Zahlen erlaubt.
Ein long
Wert wird in 64-Bit gespeichert, wobei die erste Ziffer anzeigt, ob es sich um eine positive/negative Zahl handelt. während ulong
ist auch 64-Bit, mit allen 64 Bit, um die Nummer zu speichern. also ist das Maximum von ulong 2 (64) -1, während lang 2 (63) -1 ist.
- 1. Was ist der Unterschied zwischen 'int?' und 'int' in C#?
- 2. was ist der Unterschied zwischen 'neuen()' int und 'int * p'
- 3. Was ist der Unterschied zwischen int [] [] und int [,]?
- 4. Was ist der Unterschied zwischen int ++ und ++ int?
- 5. Was ist der Unterschied zwischen int und C.int in go?
- 6. Was ist der Unterschied zwischen `==` und `ist`?
- 7. Was ist der Unterschied zwischen "int * a = new int" und "int * a = new int()"?
- 8. Unterschied zwischen int * i und int * ich
- 9. Was ist der Unterschied zwischen:.! und: r !?
- 10. Was ist der Unterschied zwischen Difftime und '-'?
- 11. Was ist der Unterschied zwischen $ und $$?
- 12. Was ist der Unterschied zwischen Verilog! und ~?
- 13. was ist der Unterschied zwischen [[], []] und [[]] * 2
- 14. Was ist der Unterschied zwischen/* ... */und/** ... */
- 15. Was ist der Unterschied zwischen `&` und `ref`?
- 16. Was ist der Unterschied zwischen $ (...) und `...`
- 17. Was ist der Unterschied zwischen .Equals und ==
- 18. Was ist der Unterschied zwischen "$^N" und "$ +"?
- 19. Was ist der Unterschied zwischen + = und = +?
- 20. Was ist der Unterschied zwischen? und ? = Nil
- 21. Was ist der Unterschied zwischen $ (()) und Ausdruck?
- 22. Unterschied zwischen void (int) und void (*) (int)
- 23. Was ist der Unterschied zwischen int x = 1 und int x (1) in C++?
- 24. Was ist der Unterschied zwischen double a = a + int b und int a + = double b?
- 25. Was ist der Unterschied zwischen int (* p) [3] und int * p [3]?
- 26. Was ist der Unterschied zwischen `extern int (x) []` und `extern int x []` in C?
- 27. Was ist der Unterschied zwischen int: Int und var in swift
- 28. Was ist der Unterschied (wenn auf meinen Code angewendet wird) zwischen INT (10) und INT (12)?
- 29. Was ist der Unterschied zwischen foo (int arr []) und foo (int arr [10])?
- 30. Was ist der Unterschied zwischen int * pn = & n und int pn = & n in C Sprache
Das ist ziemlich lustig, um von Hand auszuarbeiten. Eine 32-Bit-Variable mit Vorzeichen verwendet 1 Bit für das Vorzeichen (positiv oder negativ) und kann daher Werte zwischen -2^31 und + 2^31 - 1 –
speichern, wenn Sie int und uint für die Verwendung vergleichen. –
Was ist das C++ Äquivalent? – darkgaze