>백엔드 개발 >C++ >모듈로 연산자(%)가 음수와 다른 결과를 생성하는 이유는 무엇입니까?

모듈로 연산자(%)가 음수와 다른 결과를 생성하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-30 18:15:11791검색

Why Does the Modulo Operator (%) Produce Different Results with Negative Numbers?

모듈로 연산의 음수 나머지 값

피연산자 중 하나가 음수인 모듈로 연산을 수행할 때 예상치 못한 결과가 발생할 수 있습니다. 이 기사에서는 (-7 % 3) 및 (7 % -3)과 같은 연산이 각각 -1과 1이라는 일관되지 않은 결과를 생성하는 이유를 살펴봅니다.

ISO14882:2011 표준에 따르면 모듈로 연산자(% )는 첫 번째 피연산자를 두 번째 피연산자로 나눈 후 나머지를 제공합니다. 정수 나누기는 일반적으로 소수 부분을 버리는 것과 관련이 있지만, 모듈로 연산자는 피연산자의 부호도 고려합니다.

(-7 % 3)의 경우 -7/3의 결과는 -2입니다. -2에 3을 곱하면 -6이 되며 나머지는 -1임을 나타냅니다. 따라서 (-7 % 3) = -1입니다.

마찬가지로 (7 % -3)의 경우 7 / -3은 -2를 생성합니다. -2에 -3을 곱하면 6이 되고 나머지는 1이 됩니다. 따라서 (7 % -3) = 1이 됩니다.

모듈로 연산은 결과가 음수일 때 구현에 따라 정의된 동작을 나타낸다는 점에 유의하는 것이 중요합니다. . 일부 구현에서는 음수 기호를 유지할 수 있지만 ISO14882:2011 표준에서는 더 이상 이를 시행하지 않습니다. 따라서 음수 부호(-7 % 3)는 시스템에 따라 다릅니다.

위 내용은 모듈로 연산자(%)가 음수와 다른 결과를 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.