`
javababy1
  • 浏览: 1170653 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

求平均值,你会吗

阅读更多

二个整型数求其平均值,这个问题有人说,小学生都会. c=(a+b)/2

是的.这是一个很简单的问题.程序员一定也会.可是我们在会的时候,却忘记了会溢出,因为二个整型数相加之后可能会大于int.Max

如果是这样的话,那我们按上面的公式求出来的值还会正确吗.但是我们知道它们的平均值是肯定不会溢出

来看一下下面的代码.轻松解决了这个问题.

int average(int x, int y) //返回X,Y 的平均值
{
return (x&y)+((x^y)>>1);
}

不信你可以试一下.看看正确吗

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics