SORU
30 NİSAN 2015, PERŞEMBE


0 ve -0 ayırt etmek mümkün mü?

Tamsayı 0 -0 aslında aynı değerleri biliyorum. Ama, eğer onları ayırt etmek mümkün olup olmadığını merak ediyorum.

Örneğin, nasıl eğer bir değişken -0 atandı.

bool IsNegative(int num)
{
    // How ?
}

int num = -0;
int additinon = 5;

num  = (IsNegative(num)) ? -addition : addition;

Değeri -0 hafızada kayıtlı 0 tam olarak aynı şekilde mi?

CEVAP
30 NİSAN 2015, PERŞEMBE


Hedeflediğiniz makinesi bağlıdır.

Tamsayı için 2's complement representation kullanan bir makine varbit düzeyinde hiçbir fark yok0 -0 (aynı gösterimi var) arasında

Eğer makine one's complement kullanılmış ise kesinlikle olabilir

0000 0000   -> signed   0 
1111 1111   -> signed   −0

Açıkçası kullanmaktan bahsediyoruzyerel destekx 86 serisi işlemciler iki ... ... desteği işaretli sayıların gösterimi tamamlıyor. Diğer temsiller kullanarak kesinlikle mümkündür ama muhtemelen daha az verimli olduğu ve daha fazla talimat gerektirir.

(JerryCoffin ayrıca Not: Eğer bir tamamlayıcı olsa bile çoğunlukla tarihsel nedenler, signed magnitude representations hala oldukça yaygın olarak kabul edilmiş ve negatif ve pozitif sıfır için ayrı bir gösterimi var)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Magidson

    Eric Magidso

    4 Ocak 2009
  • snookie77

    snookie77

    2 Mart 2006
  • Study with Substance P

    Study with S

    31 Mayıs 2008