Я наблюдаю странное поведение в программе .net:
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.
Почему мои Int64 ведут себя так, как если бы они были Int32, хотя Int64.MaxValue, кажется, подтверждает, что они используют 64 бита?
Если это актуально, я использую 32-битную ОС, а для целевой платформы установлено значение «Любой ЦП»