Kann ich konvertiert long zu int?
Ich konvertieren wollen long
zu int
.
Wenn der Wert des long
> int.MaxValue
ich bin glücklich, lassen Sie es herum wickeln.
Was ist der beste Weg?
InformationsquelleAutor der Frage inspite | 2009-05-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur tun
(int)myLongValue
. Es werde genau das tun, was Sie wollen (verwerfen MSBs und unter LSBs) inunchecked
Kontext (das ist die Standardeinstellung des Compilers). Es werfeOverflowException
imchecked
Zusammenhang, wenn der Wert passt nicht in eineint
:InformationsquelleAutor der Antwort Mehrdad Afshari
Obwohl ich nicht weiß, was es tun wird, wenn er größer ist als int.MaxValue.
InformationsquelleAutor der Antwort Max Schmeling
Manchmal du bist nicht wirklich daran interessiert, den tatsächlichen Wert, sondern in Ihrer Nutzung als Prüfsumme/hashcode. In diesem Fall wird die integrierte Methode
GetHashCode()
ist eine gute Wahl:InformationsquelleAutor der Antwort realbart
Die sichere und Schnellste Weg ist die Verwendung von Bit-Maskierung vor der Besetzung...
Die Bit-Maske (
0xFFFFFFFF
) Wert hängt von der Größe von Int, weil Int size ist abhängig von der Maschine.InformationsquelleAutor der Antwort Mashake