首页 > 代码库 > 溢出
溢出
无符号数相加不会发生溢出。因为会直接截断。但是有符号数相加,会发生溢出。溢出表示大于最大表示了
那么如何判断有符号数发生溢出呢?
下面两个非负数相加
if(a + b < 0)
若a+b发生溢出,那么a+b的结果是不确定的。《C陷阱》,故上述方法不可行
if(a > INT_MAX - b)可行,不计算a+b
或者(unsigned)a + (unsigned)b > INT_MAX 换成无符号,a+b结果就确定了
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。