>  기사  >  Java  >  Java의 모듈로 연산자가 음수에 대해 음수 값을 생성하는 이유는 무엇입니까?

Java의 모듈로 연산자가 음수에 대해 음수 값을 생성하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-03 20:48:03387검색

Why Does Java's Modulo Operator Yield Negative Values for Negative Numbers?

Java의 음수 계수 값

원래 질문:

모듈로 연산자를 사용할 때 Java에서는 음수가 음수 값이 되는 경우가 있습니다. 예를 들어, int i = -1 % 2를 계산하면 -1이 나오는 반면, Python에서는 동일한 계산이 1을 반환합니다.

설명:

Java와 Python은 모듈러스 연산과 나머지 연산의 차이에서 발생합니다. Python에서 % 연산자는 음수 입력에 대해서도 항상 양수 결과를 반환하는 모듈러스 연산을 수행합니다. 대조적으로, Java의 % 연산자는 나머지를 계산하며, 이는 음수 입력의 경우 음수가 될 수 있습니다.

해결책:

Java에서 Python의 모듈로 연산과 동일한 동작을 달성하려면, 다음 접근 방식을 따를 수 있습니다.

  1. 모듈러스를 적극적으로 사용:
<code class="java">int i = (((-1 % 2) + 2) % 2);</code>

이 식에서 모듈러스 연산은 먼저 괄호를 사용하면 음수 값이 생성됩니다. 2를 추가하면 결과가 양수 범위로 이동하고 최종 모듈러스 연산을 통해 결과가 [0, 1] 범위 내에 있는지 확인합니다.

  1. 음성 확인:
<code class="java">int i = -1 % 2;
if (i < 0) i += 2;</code>

여기서 음수를 사용한 모듈러스 연산이 먼저 평가됩니다. 결과가 음수인 경우 2만큼 증가하여 양수 계수를 얻습니다.

접근 방식 선택은 특정 요구 사항과 기존 코드 기반으로의 통합 용이성에 따라 달라집니다.

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

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