今天做筆試題碰到的一題,記錄一下,題目為求函式的返回值。
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賦乙個值表示無窮大的特定值,而...