Bir .net programında bir garip davranışlar tanık ediyorum:Neden. Net Int64'lar Int32'ninki gibi davranıyor?
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.
Neden benim Int64 en davranır Int64.MaxValue onlar 64 bit kullanıyorsanız onaylamak için görünse de onlar Int32 en, sanki?
tekrar ilgili, ben 32 bit işletim sistemi kullanıyorum ve tüm operasyon Int32
aritmetik kullanılarak gerçekleştirilir, böylece hedef platformu,
Dang Jon Skeet! Beni yaklaşık 10 saniye yendin! :) –
Aptal hissediyorum :) Teşekkürler! – Brann
Sen aptal değilsin, ilk başta biraz sezgisel değil. "Çift res = someInt/otherInt" bir kayan nokta bölümü (ki değil) ve sol tarafın önemli olmadığını öğrendim zaman o zaman ısırıldı. –