가능한 중복 : 내가 이해에서
How to code a modulo (%) operator in C/C++/Obj-C that handles negative numbersC/C++의 실수 모듈 연산자?
(Modulo operation를 Modulo operator with negative values 참조) C & C++는 "나머지"연산자 a % b
하지만 실제로 모듈러 산술을 수행없이 운영자가 LHS는 부정적입니다.
여러 언어에 이러한 기능이 있습니다. C/C++에서 효율적인 함수를 빌드하는 것이 가능합니까 (아니면 i686/x64 CPU에서 효율적인 방법이 있습니까)?
현재 (n * b + a) % b
을 사용하고 있는데, n
이 선택되어 전체 LHS가 음수가 아니라는 것이 확실하지만 필연적으로 코드가 변경되고 때때로 버그가 발생합니다.
참고 : 명확하지 않은 경우 모듈 식 산술이란 연산자가 a + b % b = a % b
이고 모든 정수가 a
이고 모든 양의 정수가 b
인 연산자를 의미합니다.
http://stackoverflow.com/questions/4003232/how-to-code-a-modulo-operator-in-c-c-obj-c-that-handles-negative-numbers – Andrey
정수로 작업 하시겠습니까? 그렇지 않으면 나는'std :: fmod'를 추천 할 것이다. – Ruud
정수, 예. 대체로 배열 인덱스입니다. – dhardy