Rumah > pembangunan bahagian belakang > C++ > Mengapa Operator Modulo (%) Menghasilkan Keputusan Berbeza dengan Nombor Negatif?

Mengapa Operator Modulo (%) Menghasilkan Keputusan Berbeza dengan Nombor Negatif?

Mary-Kate Olsen
Lepaskan: 2024-12-30 18:15:11
asal
808 orang telah melayarinya

Why Does the Modulo Operator (%) Produce Different Results with Negative Numbers?

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan