Java 中負數的模計算
在 Java 中,模運算子 (%) 傳回兩個數相除後的餘數。然而,在處理負數時,結果可能不符合預期。
問題:
開發人員在使用負數進行模計算時遇到意外結果,特別是 -13 % 64。結果不是期望的 51,而是 -13。
解釋:
負數模數的定義因程式設計而異語言。在 Java 中,模運算子傳回的餘數與被除數(分子)具有相同的符號。因此,-13 % 64 的計算結果為 -13。
解:
要獲得所需的結果51,可以應用以下校正:
<code class="java">int r = x % n; if (r > 0 && x < 0) { r -= n; }</code>
此程式碼確保當除數為負時餘數為正。
或者,如果語言對負輸入返回負餘數,並且開發人員更喜歡正結果,則可以進行以下調整made:
<code class="java">int r = x % n; if (r < 0) { r += n; }</code>
此程式碼將負餘數轉換為正值。
以上是以下是一些標題選項,可以使用問題格式: * **為什麼Java中是-13 % 64而不是51? * **Java 模運算子和負數:如何獲得預期結果的詳細內容。更多資訊請關注PHP中文網其他相關文章!