estoy asistiendo a un comportamiento extraño en un programa .NET:¿Por qué mi .net Int64 se comporta como si fueran de Int32?
Console.WriteLine(Int64.MaxValue.ToString());
// displays 9223372036854775807, which is 2^63-1, as expected
Int64 a = 256*256*256*127; // ok
Int64 a = 256*256*256*128; // compile time error :
//"The operation overflows at compile time in checked mode"
// If i do this at runtime, I get some negative values, so the overflow indeed happens.
¿Por qué se comporta de mi Int64 como si fueran de Int32, aunque Int64.MaxValue parece confirmar que están utilizando 64 bits?
Si es relevante, estoy usando un sistema operativo de 32 bits, y la plataforma de destino se establece en "Cualquier CPU"
Dang que Jon Skeet! ¡Me has vencido por unos 10 segundos! :) –
Me siento estúpido :) ¡Gracias! – Brann
No eres estúpido, es un poco intuitivo al principio. Me mordieron para entonces cuando esperaba que "double res = someInt/otherInt" hiciera una división de coma flotante (que no es así) y aprendí que el lado izquierdo no importa. –