zoukankan      html  css  js  c++  java
  • [原创]通过位运算符和移位运算符来算平均数

     Java的位运算符包括:

      与(&)、非(~)、或(|)、异或(^)

     Java中有三种移位运算符: 

      <<      :     左移运算符,num << 1,相当于num乘以2

      >>      :     右移运算符,num >> 1,相当于num除以2

      >>>    :     无符号右移,忽略符号位,空位都以0补齐

    在《程序员面试宝典》第五版P41例3上,讲了一种利用位运算符和移位运算符来计算两个整数的平均数的方法:

        int x; int y;

       平均数等于:(x&y)+((x^y)>>1)

       x&y 是取相同的位与,这个结果是x和y相同位的和的一半;

       x^y 是取x和y的不同位,这个结果相当于x和y不同位的和,然后右移1位,相当于对这个和除以了2;

      最后这两部分相加,就得到了x和y的平均数;

       

      

  • 相关阅读:
    26个Jquery使用小技巧
    jQuery之浮动窗口
    Visual Studio 2010 TFS指南
    Python
    HTML5小菜
    记一次重构经历【转载】
    Python学习笔记
    Spring.Net+NHibenate+Asp.Net mvc +ExtJs 系列
    搜索分词实现
    UML概要
  • 原文地址:https://www.cnblogs.com/lordcheng/p/7435221.html
Copyright © 2011-2022 走看看