首頁 >Java >java教程 >為什麼 Java 的模運算子對負數產生負值?

為什麼 Java 的模運算子對負數產生負值?

Linda Hamilton
Linda Hamilton原創
2024-11-03 20:48:03462瀏覽

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 的 % 運算子計算餘數,對於負數輸入可能為負數。

解:
  1. 要實現與Java 中Python 求模運算相同的行為,可以遵循以下方法:
<code class="java">int i = (((-1 % 2) + 2) % 2);</code>
積極使用模數:

  1. 在此表達式中,首先在括號,產生負值。加入 2 會將結果移入正範圍,最後的模運算可確保其在 [0, 1] 範圍內。
<code class="java">int i = -1 % 2;
if (i < 0) i += 2;</code>
檢查負數:

這裡,先評估負數的模運算。如果結果為負,則加 2 以獲得正模數。 方法的選擇取決於特定要求以及整合到現有程式碼庫的難易程度。

以上是為什麼 Java 的模運算子對負數產生負值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn