SORU
1 EYLÜL 2010, ÇARŞAMBA


-1 * int.== İnt MinValue.MinValue?? Bu bir hata mı?

C# görebiliyorum

-1 * int.MinValue == int.MinValue

Bu bir hata mı? Gerçekten bir arama ağacı uygulamak için çalışırken beni mahvetti. Düzgün bunu inkar edebilmem (int.MinValue 1) ile sona erdi.

CEVAP
1 EYLÜL 2010, ÇARŞAMBA


Bu bir hata değil.

int.MinValue * -1 int.MaxValue tutabileceğinden daha 1 daha büyük. Böylece, numarasını arkaya int.MinValue sarar.

Bu temelde bir tamsayı taşması nedeniyle oluşur.

Int32.MinValue:

Bu sabit değeri -2,147,483,648

Int32.MaxValue:

Bu sabit değeri 2,147,483,647

Int32.MaxValue daha 1 biraz daha büyük, -2,147,483,648 * -1 = 2,147,483,648.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Emotional Trancer

    Emotional Tr

    4 Mart 2010
  • Pituvision

    Pituvision

    11 Mart 2006
  • WK

    WK

    9 Ocak 2006