zoukankan      html  css  js  c++  java
  • java位运算符常见用法

    1. 判断int型变量a是奇数还是偶数
    a&1 = 0 偶数
    a&1 = 1 奇数
    2. 求平均值,比如有两个int类型变量x、y,首先要求x+y的和,再除以2,但是有可能x+y的结果会超过int的最大表示范围,所以位运算就派上用场啦。
    (x&y)+((x^y)>>1);
    3. 对于一个大于0的整数,判断它是不是2的几次方
    ((x&(x-1))==0)&&(x!=0);
    4. 比如有两个int类型变量x、y,要求两者数字交换,位运算的实现方法:性能绝对高效
    x ^= y;
    y ^= x;
    x ^= y;
    5. 求绝对值
    int abs( int x )
    {
    int y ;
    y = x >> 31 ;
    return (x^y)-y ; //or: (x+y)^y
    }
    6. 取模运算,采用位运算实现:
    a % (2^n) 等价于 a & (2^n - 1)
    7. 乘法运算 采用位运算实现
    a * (2^n) 等价于 a << n
    8. 除法运算转化成位运算
    a / (2^n) 等价于 a>> n
    9. 求相反数
    (~x+1)
    10 a % 2 等价于 a & 1

     

    作者:Genesisx

    出处:Genesisx的博客--http://www.cnblogs.com/Genesisx

    您的支持是对博主最大的鼓励,感谢您的认真阅读。

    本文版权归作者和博客园共有,欢迎转载。

    但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    221. 最大正方形
    9. 回文数
    2. 两数相加
    1. 两数之和
    HDU 1864 最大报销额
    47 java包打成本地maven
    46 数组中的元素进行位置交换
    5 docker安装kibana
    45 vue图片放大预览
    4 docker中安装es
  • 原文地址:https://www.cnblogs.com/Genesisx/p/5550409.html
Copyright © 2011-2022 走看看