读书人

C语言有符号整数加法溢出判断?该怎

发布时间: 2012-09-29 10:30:01 作者: rapoo

C语言有符号整数加法,溢出判断?
《C安全编码标准》
第5章 整数
INT32-C 保证有符号整数运算不会产生溢出



C/C++ code
    //书中用si1表示x。  si2表示y。  //加法  signed int x,y,sum;  if (((x^y) |(((x(~(x^y)&(1<<(sizeof(int)*CHAR_-1))))+y)^y))>=0)   //详细解释下这个条件?     {     }  else    {        sum=x+y;     }  


---------------------------------------------------------

问题:
一, 溢出的条件,是什么意思?
详细解释下。

二,书本为什么只是符号整数的加法,无符号整数的加法怎样防止溢出?


[解决办法]
无符号整数没有溢出, 溢出是有符号数的专利

检查 cpu 的状态标志寄存器中的溢出标志位

读书人网 >C语言

热点推荐