많은 프로그래밍 언어에는 두 개의 피연산자가 모두 양수일 때 모듈러스 연산자로 사용될 수있는 "리마인더"연산자가 있습니다. 상기 연산자는 종종 "모듈러스 (modulus)"연산자로 불리우는 데, 이것이 그 주요 용도이기 때문이다. 많은 하드웨어 플랫폼의 분할 하드웨어가 분할을 수행 할 때 자동으로 나머지를 제공하고 다른 수단을 통해 나머지 또는 모듈러스를 계산하는 것이 훨씬 어려울 수 있으므로 언어에는 일반적으로 그러한 연산자가 있습니다.
서명 된 부서에 대한 하드웨어 지원 기록을 모르겠습니다. a / b가 (q, r)을 산출하면 -a / b 또는 a / -b는 (-q, -r)를 산출하지만, 해당 규칙을 사용하여 나누는 것이 특히 유용한 사용 사례를 잘 모르겠습니다. 음수 값에 정수 나누기 또는 "모듈러스"연산을 사용한 거의 모든 경우에 나눗셈에서 순방향 음의 무한대와 실제 모듈러스 연산 ((a + b) / b가 항상 (a / b) +1과 같고 (a + b) % b는 항상 a % b와 같습니다.) 연산자는 그런 식으로 작동하지 않기 때문에 배당의 부호를 테스트하고 다른 코드를 사용해야합니다. 부정적 (negative)-처음에 서명 된 분할 지시를받는 것으로부터 어떤 이익을 부정하는 것. 하드웨어에서 서명 된 부서 지원이 실제로 어떤 목적으로 유용한 지 궁금합니다.
원래의 질문으로 돌아가서, 계수 연산자는 특정 상황이 공간 (예 : 그래픽 좌표) 또는 시간에 주기적으로 발생해야하는 상황에서 종종 유용합니다. 예를 들어, 15 초마다 이벤트가 발생하도록하려면 다음 이벤트까지의 시간이 15-((time_now-time_of_an_occurrence) % 15) 가 아니라고 가정time_of_an_occurrence
time_now
합니다. 경우 time_of_an_occurrence
보다 큰했다 time_now
, 모듈러스 연산자는 같은 수식을 빼기가 오버 플로우하지 않았다 제공 계속 사용할 수 있지만, 나머지 연산자는 다른 공식이 필요합니다.