Birçok programlama dili, her iki işlenen de pozitif olduğunda bir modül operatörü olarak kullanılabilen bir "geri kalan" operatöre sahiptir; adı geçen operatöre genellikle "modül" operatörü denir, çünkü bu onun birincil kullanımıdır. Diller genellikle böyle bir operatöre sahiptir, çünkü birçok donanım platformunun bölme donanımı bir bölme gerçekleştirirken otomatik olarak bir geri kalan kaynağı sağlar ve başka bir yolla bir kalan veya modülün hesaplanması çok daha zor olacaktır.
İmzalı bölüm için donanım desteğinin geçmişini bilmiyorum; Birçok işlemci yıllarca, eğer a / b verirse (q, r), o zaman -a / b veya a / -b'nin vereceği (-q, -r), ancak Bu kuralı kullanarak bölünmenin özellikle yararlı olduğu kullanım durumlarından emin değilim. Negatif değerler üzerinde tamsayı bölme veya "modül" işlemleri kullandığım hemen hemen her durumda, bölme üzerinde negatif-sonsuz-sonsuzluk ve gerçek bir modül işlemi istedim (öyle ki (a + b) / b her zaman eşittir (a / b) +1 ve (a + b)% b her zaman% b'ye eşittir.). Operatörler bu şekilde çalışmadığından, temettü işaretini test etmek ve s negatif - esasen imzalı bir bölünme talimatına sahip olmanın herhangi bir faydasını reddetmek. Donanımda imzalı bölüm desteğinin gerçekten hangi amaçlarla yararlı olduğunu merak ediyorum.
Orijinal soruya dönersek, modül operatörü, belirli şeylerin periyodik olarak, uzayda (örneğin grafik koordinatlar) veya zamanda olması gerektiği durumlarda genellikle yararlıdır. Tek bir olay var istiyorsa Örneğin, her 15 saniyede bir olur, bir sonraki etkinliğe kadar süresi 15 olacak - ((time_now - time_of_an_occurrence)% 15), varsayarak time_of_an_occurrence
daha büyük değildirtime_now
. Daha time_of_an_occurrence
büyük olsaydı time_now
, bir modül operatörü çıkarma işleminin taşmaması koşuluyla aynı formülü kullanmaya devam edebilirdi, ancak geri kalan operatör farklı bir formül gerektirecektir.