>  기사  >  Java  >  -1 % 2가 Java에서는 -1을 반환하지만 Python에서는 1을 반환하는 이유는 무엇입니까?

-1 % 2가 Java에서는 -1을 반환하지만 Python에서는 1을 반환하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-30 04:04:28985검색

Why Does -1 % 2 Return -1 in Java, but 1 in Python?

Java의 모듈러스 연산: 양수와 음수가 중요한 이유

Java에서 모듈러스 연산을 수행할 때 모듈러스와 음수의 미묘한 차이를 이해하세요. 나머지가 중요합니다. Python과 달리 Java의 모듈로 연산자(%)는 모듈러스가 아닌 나머지를 계산합니다.

질문에 제공된 예를 고려하십시오. Java에서는 -1 % 2가 -1을 반환하고 Python에서는 1을 반환합니다. Python은 항상 음수가 아닌 값을 생성하는 모듈러스를 계산하는 반면 Java는 첫 번째 피연산자의 부호(이 경우 -1)를 유지하는 나머지를 계산하기 때문입니다.

다음과 동일한 동작을 얻으려면 Python에서는 다음 기술을 사용할 수 있습니다.

  • 덧셈 및 모듈로: 음수 결과에 2를 더한 다음 모듈로를 다시 적용합니다. 이 작업을 수행하면 결과가 항상 양수가 됩니다.
<code class="java">int i = (((-1 % 2) + 2) % 2)</code>
  • 조건부 증가: 결과를 ​​원래 나머지로 초기화하고 음수인 경우 2를 추가합니다.
<code class="java">int i = -1 % 2;
if (i < 0) i += 2;</code>

이 기술은 Java에서 음수의 모듈러스를 계산해야 할 때마다 적용된다는 점을 기억하세요. Python과 Java의 연산자는 동일한 기호(%)를 가질 수 있지만 다르게 동작하므로 언어 ​​간에 전환하는 경우 잠재적인 혼란을 초래할 수 있습니다.

위 내용은 -1 % 2가 Java에서는 -1을 반환하지만 Python에서는 1을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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