C #: Comment convertir longtemps ulong
-
22-08-2019 - |
Question
Si j'essaye avec BitConverter, il nécessite un tableau d'octets et je n'ai pas that.I ont un Int32 et je veux le convertir en UInt32.
En C ++ il n'y avait pas de problème avec ça.
La solution
Un casting est simple tout ce que vous avez besoin. Comme il est possible de perdre la précision faire, la conversion est explicite.
long x = 10;
ulong y = (ulong)x;
Autres conseils
Essayez:
Convert.ToUInt32()
Int32 i = 17;
UInt32 j = (UInt32)i;
EDIT: question ne sait pas si vous avez une longue ou un int
Compte tenu de cette fonction:
string test(long vLong)
{
ulong vULong = (ulong)vLong;
return string.Format("long hex: {0:X}, ulong hex: {1:X}", vLong, vULong);
}
Et cet usage:
string t1 = test(Int64.MinValue);
string t2 = test(Int64.MinValue + 1L);
string t3 = test(-1L);
string t4 = test(-2L);
Ce sera le résultat:
t1 == "long hex: 8000000000000000, ulong hex: 8000000000000000"
t2 == "long hex: 8000000000000001, ulong hex: 8000000000000001"
t3 == "long hex: FFFFFFFFFFFFFFFF, ulong hex: FFFFFFFFFFFFFFFF"
t4 == "long hex: FFFFFFFFFFFFFFFE, ulong hex: FFFFFFFFFFFFFFFE"
Comme vous pouvez le voir les bits sont conservés complètement, même pour les valeurs négatives.
Pour convertir une longue à un ulong, il suffit de le lancer:
long a;
ulong b = (ulong)a;
C # ne jetterai pas une exception si elle est un nombre négatif.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow