Rumah >pembangunan bahagian belakang >C++ >Mengapa Operator Modulo C Menghasilkan Keputusan Negatif?
Output Negatif daripada Modulo dalam C
Dalam C , menggunakan operator modulo (%) pada nombor negatif boleh menghasilkan keputusan yang tidak dijangka berbanding dengan matematik jangkaan. Walaupun Python secara konsisten mengembalikan nilai bukan negatif, C membenarkan output negatif. Tingkah laku ini berpunca daripada pelaksanaan pembahagian integer dan operasi modulo dalam C .
Menurut standard ISO/IEC 14882 untuk C , gelagat pengendali modulo ditakrifkan pelaksanaan jika operan kedua adalah sifar. Untuk operan bukan sifar, piawai menyatakan bahawa:
Akibatnya, jika operan kedua adalah positif dan operan pertama adalah negatif, hasil bagi menjadi negatif. Ini membawa kepada output negatif yang diperhatikan dalam operasi modulo C.
Keputusan reka bentuk ini mungkin dipengaruhi oleh beberapa faktor:
Walaupun standard membenarkan tingkah laku yang ditentukan pelaksanaan ini, ia boleh mengelirukan bagi sesetengah pengguna. Walau bagaimanapun, memahami rasional di sebalik pilihan reka bentuk ini boleh membantu menjelaskan hasil yang dijangkakan apabila menggunakan operator modulo dalam C .
Atas ialah kandungan terperinci Mengapa Operator Modulo C Menghasilkan Keputusan Negatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!