> 백엔드 개발 > C++ > C Modulo가 음수를 반환하는 이유는 무엇입니까?

C Modulo가 음수를 반환하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-25 12:42:12
원래의
276명이 탐색했습니다.

Why Does C   Modulo Return Negative Numbers?

모듈로를 사용할 때 C가 음수를 출력하는 이유는 무엇입니까?

파이썬과 달리 C는 양의 제수와 함께 모듈로를 사용할 때 음수 값을 출력합니다. 이는 연산이 ISO/IEC 14882:2003(E)에 따라 C에서 구현 정의되기 때문에 발생합니다.

"두 피연산자가 모두 음수가 아니면 나머지는 음수가 아닙니다. 그렇지 않은 경우 나머지의 부호는 다음과 같습니다. 구현 정의."

이 정의를 사용하면 나누기 및 모듈로가 수행되는 프로세서 명령어 세트에서 일반적인 최적화가 가능합니다. 함께.

음수 나머지는 다음 규칙에 따라 일관성을 보장합니다.

  • 정수 나누기의 경우 몫은 0으로 반올림됩니다.
  • 피제수 방정식(나눗셈 = 몫 * 제수 나머지)는 결과에 만족합니다.

이는 음수를 양수이면 몫은 음수(또는 0)가 됩니다.

이 사양의 이론적 근거는 다음과 같습니다.

  • 프로세서 명령 세트의 효율성과 단순성.
  • 일관성 나눗셈 방정식을 반올림하고 존중합니다.
  • C는 효율성과
  • C와 C의 호환성.

음수 나머지가 직관에 반하는 것처럼 보일 수 있지만 이는 C의 모듈로 구현 정의 특성의 결과입니다. 정수 나누기의 일관성을 보장하고 성능을 최적화합니다.

위 내용은 C Modulo가 음수를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿