Java에서 음수를 사용한 계수 계산
Java에서 계수 연산자(%)는 두 숫자를 나눈 나머지를 반환합니다. 그러나 음수를 처리할 경우 결과가 예상과 다를 수 있습니다.
문제:
개발자가 음수로 모듈러스 계산을 수행할 때 예기치 않은 결과가 발생합니다. 특히 -13 % 64. 원하는 결과 51 대신 결과는 -13입니다.
설명:
음수의 모듈러스 정의는 프로그래밍마다 다릅니다. 언어. Java에서는 모듈러스 연산자가 반환하는 나머지가 피제수(분자)와 동일한 부호를 갖습니다. 따라서 -13 % 64는 -13으로 평가됩니다.
해결책:
원하는 결과인 51을 얻으려면 다음 수정을 적용할 수 있습니다.
<code class="java">int r = x % n; if (r > 0 && x < 0) { r -= n; }</code>
이 코드는 배당금이 음수일 때 나머지가 양수가 되도록 보장합니다.
또는 언어가 음수 입력에 대해 음수 나머지를 반환하고 개발자가 양수 결과를 선호하는 경우 다음 조정이 가능합니다. made:
<code class="java">int r = x % n; if (r < 0) { r += n; }</code>
이 코드는 음수 나머지를 양수 값으로 변환합니다.
위 내용은 다음은 질문 형식을 활용한 몇 가지 제목 옵션입니다. * **Java에서 -13 % 64가 51이 아닌 이유는 무엇입니까?** (간단하고 직접적) * **Java 모듈러스 연산자 및 음수: 예상 결과를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!