读书人

整数溢出?该如何解决

发布时间: 2012-09-23 10:28:11 作者: rapoo

整数溢出?
怎样判断表达式溢出?
给个实例!

[解决办法]

C/C++ code
//有符号整形a和b,如何判断a+b是否溢出#include <stdio.h>int ifo_add(int a,int b) {    __asm {        mov eax,a        add eax,b        jo  overflowed        xor eax,eax        jmp no_overflowedoverflowed:        mov eax,1no_overflowed:    }}int main() {    int a,b;    a=          1;b= 2;printf("%11d+(%2d) %d\n",a,b,ifo_add(a,b));    a=         -1;b=-2;printf("%11d+(%2d) %d\n",a,b,ifo_add(a,b));    a= 2147483647;b= 1;printf("%11d+(%2d) %d\n",a,b,ifo_add(a,b));    a=-2147483647;b=-1;printf("%11d+(%2d) %d\n",a,b,ifo_add(a,b));    a=-2147483647;b=-2;printf("%11d+(%2d) %d\n",a,b,ifo_add(a,b));}//          1+( 2) 0//         -1+(-2) 0// 2147483647+( 1) 1//-2147483647+(-1) 0//-2147483647+(-2) 1 

读书人网 >C语言

热点推荐