Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Pengendali Modulo Mengendalikan Nombor Negatif?
Memahami Gelagat Operator Modulo dengan Nilai Negatif
Pengendali modulo diketahui menghasilkan hasil yang berbeza apabila digunakan dengan operan negatif. Untuk menyelidiki perkara ini, mari kita pertimbangkan operasi berikut:
std::cout << (-7 % 3) << std::endl; // Output: -1 std::cout << (7 % -3) << std::endl; // Output: 1
Rasional Mengikut Piawaian ISO
Menurut ISO14882:2011(e) 5.6-4, pengendali modulo (%) menghasilkan baki daripada pembahagian ungkapan pertama dengan yang kedua. Walau bagaimanapun, untuk operan kamiran seperti dalam kes kami, operator bahagian (/) melakukan pembahagian integer, membuang mana-mana bahagian pecahan.
Pecahan Matematik
Mari kita pecahkan pengiraan untuk kejelasan:
Implementation-Defined Tingkah Laku
Adalah penting untuk ambil perhatian bahawa apabila kedua-dua operan negatif, tanda selebihnya ditentukan pelaksanaan. Walau bagaimanapun, setakat ISO14882:2011(e), tingkah laku itu tidak lagi dinyatakan secara eksplisit seperti dalam pendahulunya, ISO14882:2003(e).
Atas ialah kandungan terperinci Bagaimanakah Pengendali Modulo Mengendalikan Nombor Negatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!