Si intento con BitConverter, requiere una matriz de bytes y no la tengo. Tengo un Int32 y quiero convertirlo a UInt32.C#: Cómo convertir long to ulong
En C++ no hubo ningún problema con eso.
Si intento con BitConverter, requiere una matriz de bytes y no la tengo. Tengo un Int32 y quiero convertirlo a UInt32.C#: Cómo convertir long to ulong
En C++ no hubo ningún problema con eso.
Un elenco simple es todo lo que necesita. Como es posible perder precisión al hacer esto, la conversión es explícita.
long x = 10;
ulong y = (ulong)x;
¿No es posible desbordar con grandes negativos? Puede usar 'unchecked' para truncar en su lugar: http://msdn.microsoft.com/en-us/library/a569z7k8(VS.71).aspx –
Convertir mucho 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.
No creo que esto arroje una excepción con un valor negativo, pero no será lo que espera ... no tiene .net aquí (laptop), o lo probaría. – Tracker1
No lo hará, pero el primer bit se interpretará como el bit más significativo en lugar del bit de signo. – DuneCat
No arrojará. Debería considerar revisar su respuesta de lo contrario podría ser engañoso. – KFL
Probar:
Convert.ToUInt32()
Int32 i = 17;
UInt32 j = (UInt32)i;
EDIT: pregunta es claro si usted tiene un largo o un int?
Creo que John se refiere a longs "viejos" en C o C++ que tenían 32 bits de ancho. –
pregunta dice C#? –
Quise decir que se refirió por costumbre. –
Dada 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
Algo confundido lo que estás preguntando aquí compinche - longs, byte arrays, y ints - ¿puedes dar más detalles? – Chris