C #: ¿Cómo convertir a largo ulong
-
22-08-2019 - |
Pregunta
Si trato con BitConverter, se requiere una matriz de bytes y no tienen that.I tiene un Int32 y quiero convertirlo en UInt32.
En C ++ no había ningún problema con eso.
Solución
Un molde simple es todo lo que necesita. Puesto que es posible perder la precisión de hacer esto, la conversión es explícita.
long x = 10;
ulong y = (ulong)x;
Otros consejos
Probar:
Convert.ToUInt32()
Int32 i = 17;
UInt32 j = (UInt32)i;
EDIT:? Pregunta es claro si usted tiene un largo o un int
Teniendo en cuenta esta función:
string test(long vLong)
{
ulong vULong = (ulong)vLong;
return string.Format("long hex: {0:X}, ulong hex: {1:X}", vLong, vULong);
}
Y este uso:
string t1 = test(Int64.MinValue);
string t2 = test(Int64.MinValue + 1L);
string t3 = test(-1L);
string t4 = test(-2L);
Este será el resultado:
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"
Como se puede ver los bits se conservan por completo, incluso para valores negativos.
Para convertir un largo a un ulong, simplemente echarlo:
long a;
ulong b = (ulong)a;
C # no será una excepción si se trata de un número negativo.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow