與 Python 不同,C 在使用正除數模時輸出負值。發生這種情況是因為該操作是根據 ISO/IEC 14882:2003(E) 在 C中實現定義的:
「如果兩個操作數都是非負,則餘數為非負;如果不是,則餘數的符號為實現定義。」
此定義允許在執行除法和取模的處理器指令集中常見的最佳化
負餘數確保與以下規則的一致性:
這表示當負數除以正數時數,商將為負數(或零)。
此規範的基本原理包括:
雖然負餘數可能看起來違反直覺,但它是 C 中模數的實現定義性質的結果。它確保與整數除法的一致性並優化性能。
以上是為什麼 C 模運算會回負數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!