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

  • BruBearBaby

    BruBearBaby

    25 Ocak 2011
  • Michael Neal

    Michael Neal

    2 Mayıs 2009
  • RaverX DouBle StAg XI

    RaverX DouBl

    23 Mayıs 2008