C语言判断两个整数相加会不会溢出

实际上,大多数电脑中,整数都是用补码来表示的。发生溢出不会报警,只是将最高位直接截断。

/*习题2.30
C语言
开发环境VC++6.0*/

#include<stdio.h>

int taddOK(int, int);

void main(){
 int x, y;

printf("Input two integers:\n");
 scanf("%d %d",&x, &y);

printf("%d\n",taddOK(x,y));
 
}

/*Determine whether arguments can be added without overflow */
int taddOK(int x, int y){
 int sum = x + y; 
 int negOverflow = x < 0 && y < 0 && sum >= 0;
 int posOverflow = x >= 0 && y >= 0 && sum <= 0;

return !negOverflow && !posOverflow;
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/7ef15f57d567c314c30fa67be369ab75.html