SORU
29 EYLÜL 2011, PERŞEMBE


Negatif değerler ile mod işleç

Neden bu tür işlemleri yapın:

std::cout << (-7 % 3) << std::endl;
std::cout << (7 % -3) << std::endl;

farklı sonuçlar verir?

-1
1

CEVAP
29 EYLÜL 2011, PERŞEMBE


İSO14882:2011(e) 5.6-4:

İkili / operatör bölüm ve ikili % operatör verimi bu ilk anlatım bölümünden kalanı verir ikinci. Eğer / ya da % ikinci işlenen davranıştır sıfır tanımsız. İntegral işlenen / operatör herhangi bir kesirli bölümü ise bölüm a/b ise atılır; ile cebirsel bölüm verimleri sonuç türü olarak gösterilebilir, (a/b)*b%b eşittir.

Geri kalan temel matematik

(-7/3) => -2
-2 * 3 => -6
so a%b => -1

(7/-3) => -2
-2 * -3 => 6
so a%b => 1

Unutmayın

Eğer her iki işlenen sıfırdan büyük olursa, o zaman geri kalan negatif olmayan; eğer değil, geri kalan tabela uygulama tanımlı.

İSO14882:2003(e) İSO14882:2011(e) artık yok

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Absolute Zero(Programming Tutorials)

    Absolute Zer

    22 Kasım 2012
  • Friday Night Cranks

    Friday Night

    27 Mayıs 2007
  • Shameless Maya

    Shameless Ma

    24 Mayıs 2012