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的平均数;

       

      

  • 相关阅读:
    java 问题记录
    java 构造方法
    java 接口
    java 抽象类
    java 封装
    java 面向对象
    java 集合小练习 超市库存管理系统
    linux常用指令
    个人简历表格
    html5 表格文档常用指令
  • 原文地址:https://www.cnblogs.com/lordcheng/p/7435221.html
Copyright © 2011-2022 走看看