摘要:
最近代码中用到很多无符号整数的二元运算,一直提心吊胆的,生怕什么时候加法运算就溢出了。所以有必要加个溢出检测。关于溢出,http://www.phrack.com/issues.html?issue=60&id=10,这篇文章讲的很清楚。检测无符号整数相加溢出的方法比较简单:首先在无符号表示中 a + 2^n = a;如果a,b两个无符号整数,都未溢出:a < 2^n, b < 2^n, 且a+b > 2^n,那么sum = a + b - 2^n , 即sum - a = b - 2^n < 0==> sum < a,同理可得 sum < b 阅读全文