Akan melalui Modulo operasi (jalan saya masuk sambil menjelajahi perbedaan antara rem
danmod
) saya datang di:
Dalam matematika hasil operasi modulo adalah sisa dari divisi Euclidean. Namun, konvensi lain dimungkinkan. Komputer dan kalkulator memiliki berbagai cara untuk menyimpan dan mewakili angka; sehingga definisi mereka tentang operasi modulo tergantung pada bahasa pemrograman dan / atau perangkat keras yang mendasarinya.
Pertanyaan:
- Akan melalui divisi Euclidean saya menemukan bahwa remainnder dari operasi ini selalu positif (atau 0). Apa batasan perangkat keras komputer yang mendasari perancang bahasa pemrograman berbeda dari matematika?
- Setiap bahasa pemrograman menetapkannya, atau tidak terdefinisi, aturan yang sesuai dengan hasil operasi modulo mendapatkan tanda itu. Dasar pemikiran apa yang diadopsi saat membuat aturan ini? Dan jika perangkat keras yang mendasarinya memprihatinkan, maka seharusnya aturan tidak berubah sesuai dengan itu, terlepas dari bahasa pemrograman?
(-3)/2 == -1
. Definisi ini dapat bermanfaat. Ketika Anda ingin %
konsisten dengan divisi ini memenuhi x == (x/y)*y + x % y
Anda berakhir dengan definisi yang %
digunakan dalam C #.