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

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

Linda Hamilton
發布: 2024-11-03 20:48:03
原創
409 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板