Swift如何判断int数据是否溢出

Swift如何判断一个数据是否溢出呢?比如两个数相加,如果结果过大就会出现溢出的情况。例如Int.max+1就会溢出。不使用溢出运算符&+、&-、&*、&/、&%,如何避免两个数相加出现溢出的情况?

阅读 3.7k
1 个回答

提供一个思路,只限于两个数相加。

// 假设 i 和 j 都没有超过
func outOfRange(_ i: Int, _ j: Int) -> Bool {
   if i < 0 && j < 0 {
     return Int.min - i > j
   }
   if i >= 0 && j >= 0 {
     return Int.max - i < j
   }
   // 如果一正一负,则求和结果是永远不超出
   return false
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进