Saya percaya ini lebih berguna untuk dipikirkan mod
karena didefinisikan dalam aritmatika abstrak; bukan sebagai operasi, tetapi sebagai kelas aritmatika yang berbeda, dengan elemen yang berbeda, dan operator yang berbeda. Itu berarti penambahan dalam mod 3
tidak sama dengan penambahan "normal"; itu adalah; penambahan bilangan bulat.
Jadi ketika Anda melakukannya:
5 % -3
Anda mencoba memetakan bilangan bulat 5 ke elemen di set mod -3
. Ini adalah elemen dari mod -3
:
{ 0, -2, -1 }
Begitu:
0 => 0, 1 => -2, 2 => -1, 3 => 0, 4 => -2, 5 => -1
Katakanlah Anda harus begadang karena sesuatu alasan 30 jam, berapa jam lagi yang tersisa untuk hari itu? 30 mod -24
.
Tetapi apa yang tidak diterapkan oleh C mod
, itu adalah sisa. Bagaimanapun, intinya adalah masuk akal untuk mengembalikan negatif.