首頁  >  文章  >  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