INT MAX和INT MIN的溢位

2021-10-04 06:50:09 字數 448 閱讀 9291

今天做筆試題碰到的一題,記錄一下,題目為求函式的返回值。

int func(int a, int b)

return a+b;

}int main(){

cout《題目考察int型別的溢位後的狀態,a比b先溢位:

a為int_max且加1溢位後,a由int_max變為int_min,此時b為int_min。a+b 等於int_min + int_min 等於0,退出返回0。

附:int型別是32位的,範圍是-2147483648到2147483647 。

(1)最輕微的上溢是int_max + 1 :結果是 int_min;

(2)最嚴重的上溢是int_max + int_max :結果是-2;

(3)最輕微的下溢是int_min - 1:結果是是int_max;

(4)最嚴重的下溢是int_min + int_min:結果是0 。

INT MAX和INT MIN注意事項

int min在標準標頭檔案limits.h中定義。define int max 2147483647 define int min int max 1 12在c c 語言中,不能夠直接使用 2147483648來代替最小負數,因為這不是乙個數字,而是乙個表示式。表示式的意思是對整數21473648...

ACM INT MAX和INT MIN注意事項

int min在標準標頭檔案limits.h中定義。define int max 2147483647 define int min int max 1 在c c 語言中,不能夠直接使用 2147483648來代替最小負數,因為這不是乙個數字,而是乙個表示式。表示式的意思是對整數21473648取負...

浮點值的上溢和下溢(其他數值型別相似)

上文說到,float的取值範圍為10 37 10 38。如果數字大小超過10 38會怎麼樣呢?通過本文標題,我們大概可以猜出,這就是乙個浮點值的上溢 emmmm 我彷彿是個沙雕 當計算導致數字過大,超過當前型別的表達範圍時,就會發生上溢。現在c語言規定,會給toobig賦乙個值表示無窮大的特定值,而...