모듈러스 평가: 음의 결과 이해
C에서 모듈로 연산자(%)는 특정 조건에서 음의 값을 생성하는 것으로 알려져 있습니다. 이는 특히 이러한 작업이 다른 결과를 반환하는 경우 혼란스러울 수 있습니다.
std::cout << (-7 % 3) << std::endl; // -1 std::cout << (7 % -3) << std::endl; // 1
이 동작을 명확히 하기 위해 ISO C 표준(ISO14882:2011)을 참조합니다. 모듈로 연산자는 첫 번째 피연산자(분자)를 두 번째 피연산자(분모)로 나눈 나머지를 반환합니다.
첫 번째 연산의 경우 (-7)을 3으로 나누어 결과는 -입니다. 2이고 나머지는 -1입니다. 따라서 (-7 % 3)은 -1과 같습니다.
두 번째 연산의 경우 7을 -3으로 나누어 몫도 -2가 됩니다. 그러나 분모가 음수이므로 나머지 부호는 구현에 따라 정의됩니다. 이 경우 구현에서는 양수 나머지인 1을 반환하도록 선택합니다.
모듈로 연산자의 동작은 특정 플랫폼 및 구현에 따라 다를 수 있다는 점에 유의하는 것이 중요합니다. 일반적으로 음수 값을 신중하게 처리하고 모듈로 연산자로 작업할 때 다른 결과가 발생할 가능성을 고려하는 것이 좋습니다.
위 내용은 C 모듈로 연산자(%)가 때때로 부정적인 결과를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!