Rumah >pembangunan bahagian belakang >C++ >Mengapa Operator Modulo (%) Menghasilkan Keputusan Berbeza dengan Nombor Negatif?
Nilai Baki Negatif dalam Operasi Modulo
Apabila melakukan operasi modulo, di mana satu operan negatif, hasil yang tidak dijangka mungkin timbul. Artikel ini meneroka sebab operasi seperti (-7 % 3) dan (7 % -3) menghasilkan keputusan yang kelihatan tidak konsisten masing-masing -1 dan 1.
Menurut piawaian ISO14882:2011, pengendali modulo (% ) menyediakan baki selepas membahagikan operan pertama dengan yang kedua. Walaupun membahagi integer secara amnya melibatkan membuang bahagian pecahan, pengendali modulo juga mempertimbangkan tanda-tanda operan.
Dalam kes (-7 % 3), keputusan -7 / 3 ialah -2. Mendarab -2 dengan 3 memberi -6, menunjukkan bahawa bakinya ialah -1. Oleh itu, (-7 % 3) = -1.
Begitu juga, untuk (7 % -3), 7 / -3 menghasilkan -2. Mendarab -2 dengan -3 menghasilkan 6, menjadikan bakinya 1. Oleh itu, (7 % -3) = 1.
Adalah penting untuk ambil perhatian bahawa operasi modulo mempamerkan tingkah laku yang ditentukan pelaksanaan apabila hasilnya negatif . Walaupun sesetengah pelaksanaan mungkin mengekalkan tanda negatif, standard ISO14882:2011 tidak lagi menguatkuasakan perkara ini. Oleh itu, tanda masuk negatif (-7 % 3) adalah bergantung kepada sistem.
Atas ialah kandungan terperinci Mengapa Operator Modulo (%) Menghasilkan Keputusan Berbeza dengan Nombor Negatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!