C語言中無符號數運算判斷溢出

對於無符號加法運算,當執行C程序時,不會將溢出做爲錯誤而發信號。例如要計算s = x + y;若是溢出則會獲得結果s = (x + y) %2 w或者s = x + y - 2 w(w 是機器中無符號的最大二進制位數)。又由於x < 2 w且y < 2 w,因此能夠用if(s < x) 或if(s < y)來判斷計算結果是否溢出。
相關文章
相關標籤/搜索