首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

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

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 的状态标志寄存器中的溢出标志位

热点排行