整型是计算机存储数据的一种模式。一种特定的整型只能存储处于特定范围内的数据。(例如,短整型short可以存储的数字大小一般不超过32767。)当一个整型中存储的数据超过了它的容纳范围时,这个数据便不能被正确地表达出来。我们将这种情况称为整型的溢出。通俗地讲,可以将它理解为物极必反的意思。
————《整型溢出:信息学竞赛的发展,繁荣与衰退》
给定两个使用32位有符号整型存储的数,判断计算a+b
时是否会发生溢出。
注:由于编译器优化,可能逻辑上看正确的代码也会出锅。建议使用C++11语言,并且在使用int的边界常数时末尾加上ll(例2147483647ll
)防止被编译器误杀。