模運算中的負餘數
進行模運算時,如果一個操作數為負,則可能會出現意外結果。本文探討了為什麼 (-7 % 3) 和 (7 % -3) 等運算分別會產生看似不一致的 -1 和 1 結果。
依據 ISO14882:2011 標準,模運算子 (% ) 提供第一個運算元除以第二個運算元後的餘數。雖然整數除法通常會捨棄小數部分,但取模運算子也會考慮運算元的符號。
在 (-7 % 3) 的情況下,-7 / 3 的結果是 -2。 -2 乘以 3 得到 -6,表示餘數為 -1。因此,(-7 % 3) = -1。
類似地,對於 (7 % -3),7 / -3 產生 -2。 -2 乘以 -3 得到 6,餘數為 1。因此,(7 % -3) = 1。
要注意的是,當結果為負數時,取模運算會表現出實現定義的行為。雖然某些實作可能會保留負號,但 ISO14882:2011 標準不再強制執行此操作。因此,(-7 % 3) 中的負號取決於系統。
以上是為什麼模運算子 (%) 會對負數產生不同的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!