>Java >java지도 시간 >Java의 모듈로 연산자가 음수 입력에 대해 음수 결과를 반환하는 이유는 무엇입니까?

Java의 모듈로 연산자가 음수 입력에 대해 음수 결과를 반환하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-02 04:50:02659검색

Why Does Java's Modulo Operator Return Negative Results for Negative Inputs?

Java의 모듈로와 나머지 이해

Java에서 모듈로 연산자(%)는 한 숫자를 다른 숫자로 나눈 후 나머지를 계산합니다. Python의 모듈로 연산자와 달리 Java의 모듈로 연산은 음수 입력에 대해 음수 값을 반환합니다. 이는 Python과 Java 모두에서 -1 % 2를 계산할 때 나타난 것처럼 예상치 못한 결과를 초래할 수 있습니다.

불일치 해결

Python의 모듈로와 동일한 동작을 달성하려면 Java에서 연산자를 사용하려면 다음 기술을 사용할 수 있습니다.

  • 수식 사용: 수식(((-1 % 2) 2) % 2)을 적용하여 항상 나머지에 대한 양수 결과.
  • 음수 값 확인: 모듈로 연산자를 사용하는 대신 나눗셈 결과가 음수인지 확인하세요. 그렇다면 결과에 분모를 추가하여 양수 값을 얻습니다.

예제 코드:

<code class="java">int i = (((-1 % 2) + 2) % 2);</code>

또는

<code class="java">int i = -1 % 2;
if (i < 0) i += 2;</code>

이러한 기술을 사용하면 Java의 모듈로 연산이 Python의 모듈로 연산자와 일관되게 동작하고 예상되는 양의 나머지 값을 제공하는지 확인할 수 있습니다.

위 내용은 Java의 모듈로 연산자가 음수 입력에 대해 음수 결과를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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