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ş:
Ben C unit kullanmalısınız#'t neg...
İnput type=&; numara" negatif değ...
Negatif değerler için kontrol etmek ye...
Garip Objective-C Mod Davranış, Negati...
Nasıl pozitif veya negatif bir sayı ol...