了解類別C 語言中取負值的模運算子的行為
C 派生語言中的模運算子(%),例如C、C 和Obj-C 在處理負數時可能會導致意外結果。這可能會令人沮喪,尤其是對於那些具有數學背景的人來說。在本次討論中,我們將深入研究該問題並探索處理模運算中負值的解決方案。
要記住的一個關鍵方面是模運算反映了整數除法後的餘數。但是,對於負數,根據 C 標準,餘數的符號是實現定義的。這種不一致可能會導致令人驚訝的輸出,例如 (-1) % 8 返回 -1 而不是預期的 7。
為了回應這個挑戰,我們可以利用以下方法:
int mod(int a, int b) {
if (b 此解可容納正操作數和負運算元。如果餘數為負,則透過添加除數來確保餘數始終為正。因此,mod(-1, 8) 將返回 7,而 mod(13, -8) 將返回 -3,提供一致且直觀的行為。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3