摘要: 在 C/C++ 中, 直接利用 `(x + y) >> 1` 来计算两个整数的平均值并向下取整以及直接利用 `(x + y + 1) >> 1` 来计算两个整数的平均值并向上取整的结果可能有误, 因为 `(x + y) >> 1` 和 `(x + y + 1) >> 1` 中的 `x+y` 可能会发生数值溢出. 而两个整数的平均值并取值的结果是不可能数值溢出的, 这就引发我们思考可不可能通过某种方式来规避平均值计算中的数值溢出. 阅读全文
posted @ 2020-05-29 20:58 quarryman 阅读(1937) 评论(0) 推荐(1) 编辑