SORU
22 Temmuz 2013, PAZARTESİ


(İ = = - & & i != ı değer 0) Java ile doğru dönmek

if aşağıdaki iki koşul var.

if (i == -i && i != 0)

Ne değeri i Java bu durum için true geri dönecek mi?

Java two's complement gösterim düşünen i herhangi bir değer düşünemez oldum.

Ayrıca bu durum her cebirsel kanıt (Java) bağlamında) sahip olmak isterdim?

CEVAP
22 Temmuz 2013, PAZARTESİ


Kendisi için çalışır int tek değer Integer.MIN_VALUE.

Tamsayılar two's complement way kullanarak etkisiz olduğu için.

Kullanarak

System.out.println(Integer.toBinaryString(Integer.MIN_VALUE));

Integer.MIN_VALUE olduğunu görürsünüz

10000000000000000000000000000000

Negatif değer alarak ilk 0 veren 1, takas yapılır

01111111111111111111111111111111

ve veren 1 ekleyerek

10000000000000000000000000000000

Verdiğim link de gördüğünüz gibi, Wikipedia en negatif sayılar ile sorun bahseder ve tek istisna olduğunu belirtir :

İki en negatif sayı bazen "denir tamamlayıcı garip bir sayı, tek istisna, çünkü".

Tabii eğer long bir değişkeni depolamak Long.Min_Value aynı olgu var.

Unutmayınbu sadece Java ' in ikili depolama alanı ile ilgili yapılan seçimler nedeniyle. Başka bir (kötü) çözüm için örnek olması için inkar ederek sadece değişen en önemli bit ve izin verdiğiniz diğer bitleri değiştirmeden, bu olurdu Kaçınılması bu problem ile MİN_VALUE ama yapardı 2 farklı 0 değerleri ve karmaşık ikili aritmetik (nasıl alırsın artan örneğin ?).

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fubar Protocol

    Fubar Protoc

    21 AĞUSTOS 2010
  • joshsnice

    joshsnice

    28 Kasım 2006
  • RomanAtwood

    RomanAtwood

    18 Kasım 2009