首頁 > Java > java教程 > ## 為什麼 Java 的模運算子 (%) 對於負數回傳負結果?

## 為什麼 Java 的模運算子 (%) 對於負數回傳負結果?

Susan Sarandon
發布: 2024-10-29 12:39:30
原創
349 人瀏覽過

## Why Does Java's Modulus Operator (%) Return Negative Results for Negative Numbers?

Java 中的模計算:處理負數

在 Java 中,對負數執行模運算通常會產生意想不到的結果。當對負數應用模運算子 (%) 時,人們可能會期望獲得正值,但在某些情況下,它會傳回負結果。要理解這種行為,有必要深入研究模數計算的內部工作原理。

模運算子計算一個數字除以另一個數字時的餘數。對於正數,餘數始終為正。但是,在處理負數時,模數有兩種可能的定義:

  1. Floored Modulus:此定義將餘數向下捨去到最接近負無窮大的整數。
  2. 截斷模數:此定義將餘數向下舍入為零(即,它丟棄任何小數部分)。

Java 採用截斷模數定義。因此,當負數除以正數時,餘數始終為負數。例如,-13 % 64 在 Java 中的計算結果為 -13,因為 -13 除以 64 時沒有任何小數部分。

如果希望負數輸入有正餘數,可以使用以下程式碼片段:

<code class="java">int r = x % n;
if (r > 0 && x < 0) {
    r -= n;
}</code>
登入後複製

相反,如果您喜歡負數輸入的負餘數,則可以使用下列程式碼片段:

<code class="java">int r = x % n;
if (r < 0) {
    r += n;
}</code>
登入後複製

在處理負數時,理解模數的不同定義至關重要在不同的程式語言中。透過理解下限模數和截斷模數之間的區別,開發人員可以確保他們的程式碼按預期運行,特別是在處理負輸入時。

以上是## 為什麼 Java 的模運算子 (%) 對於負數回傳負結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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