Rumah >pembangunan bahagian belakang >C++ >Mengapa Operator Modulo Menghasilkan Keputusan Negatif dengan Nombor Negatif?
Pengendali Modulo Keputusan dalam Nilai Negatif: Penjelasan Matematik
Pengendali modulo %, apabila digunakan pada nombor negatif, boleh menghasilkan keputusan yang berbeza bergantung pada pelaksanaan. Ini boleh membingungkan, tetapi memahami definisi matematik pengendali modulo boleh menjelaskan tingkah laku ini.
Menurut ISO14882:2011(e) 5.6-4, pengendali modulo mengembalikan baki pembahagian ungkapan pertama dengan yang kedua. Jika operan kedua adalah sifar, tingkah laku tidak ditentukan. Untuk operan kamiran, hasil bagi ialah hasil bagi algebra dengan mana-mana bahagian pecahan dibuang.
Untuk menggambarkan ini, pertimbangkan contoh berikut:
std::cout << (-7 % 3) << std::endl; // -1 std::cout << (7 % -3) << std::endl; // 1
(-7 % 3) = -1
(7 % -3) = 1
Ambil perhatian bahawa dalam kedua-dua kes, hasil bagi algebra adalah sama (-2). Perbezaan dalam baki terhasil daripada tanda yang ditentukan pelaksanaan bagi baki apabila kedua-dua operan mempunyai tanda yang berbeza.
Atas ialah kandungan terperinci Mengapa Operator Modulo Menghasilkan Keputusan Negatif dengan Nombor Negatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!