Ich bin ein seltsames Verhalten in einem .net-Programm erleben:Warum verhält sich mein .net Int64 wie 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.
Warum verhält sich mein Int64 ist, als ob sie Int32 ist, obwohl Int64.MaxValue sie 64 Bits verwenden, um zu bestätigen scheint?
Wenn es relevant ist, ich bin ein 32-Bit-Betriebssystem verwenden und die Zielplattform ist auf „Jeder CPU“
Dang Sie Jon Skeet! Du hast mich um 10 Sekunden geschlagen! :) –
Ich fühle mich dumm :) Danke! – Brann
Du bist nicht dumm, es ist zunächst ein wenig unintelligent. Ich wurde damals gebissen, als ich erwartet hatte, dass "double res = someInt/otherInt" eine Gleitkomma-Division macht (was nicht der Fall ist) und dass die linke Seite keine Rolle spielt. –