美文网首页
有趣的程序猿思维备忘

有趣的程序猿思维备忘

作者: AibWang | 来源:发表于2019-01-12 20:19 被阅读0次

    取两个整数的中间值

    int left = 10;
    int right = 15;
    int mid;
    mid = (left+right)/2;
    

    上述一个简单的除以2操作,在程序猿眼中可以有多种优化:

    • 如果leftright很大,那么left+right就存在溢出的可能,因此可以使用另一种表达
    mid = left+(right-left)/2;
    

    这个思路同样适用于浮点数。

    • 整数除以2可以用位运算代替,计算机处理位运算的速度要比除法快很多,因此可以表示为:
    mid = left+((right-left)>>1);
    

    (注意:上述要注意的一个问题是运算优先级,位运算的优先级低于加减法,故不能将上述语句错写为mid = left+(right-left)>>1

    相关文章

      网友评论

          本文标题:有趣的程序猿思维备忘

          本文链接:https://www.haomeiwen.com/subject/uyncdqtx.html