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

  • Associated Press

    Associated P

    18 EYLÜL 2006
  • Jeremy Stark

    Jeremy Stark

    23 Mayıs 2010
  • TecNoob

    TecNoob

    15 AĞUSTOS 2013