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

  • Baby Big Mouth

    Baby Big Mou

    5 Mart 2013
  • curioustravelers

    curioustrave

    12 AĞUSTOS 2006
  • o0oCyrusViruso0o

    o0oCyrusViru

    11 Mart 2008