unity try parse net convertir convert cast asp c# types int type-conversion long-integer

try - string to int c# unity



¿Puedo convertir long a int? (4)

A veces no está realmente interesado en el valor real, sino en su uso como suma de comprobación / código hash . En este caso, el método incorporado GetHashCode() es una buena opción:

int checkSumAsInt32 = checkSumAsIn64.GetHashCode();

Quiero convertir long a int .

Si el valor de long > int.MaxValue , estoy contento de dejarlo funcionar.

¿Cuál es la mejor manera?


La forma más segura y rápida es usar el enmascaramiento de bits antes del lanzamiento ...

int MyInt = (int) ( MyLong & 0xFFFFFFFF )

El valor de Máscara de bit ( 0xFFFFFFFF ) dependerá del tamaño de Int porque el tamaño de Int depende de la máquina.


Solo haz (int)myLongValue . Hará exactamente lo que quiera (descartando MSBs y tomando LSB) en contexto unchecked (que es el compilador predeterminado). Lanzará OverflowException en un contexto checked si el valor no cabe en un int :

int myIntValue = unchecked((int)myLongValue);


Convert.ToInt32(myValue);

Aunque no sé lo que hará cuando sea mayor que int.MaxValue.