zoukankan      html  css  js  c++  java
  • 位运算(1的个数;2.判断奇偶)

    1.

    1的个数

    int NumberOf1(int n){
    int count = 0;
       while(n)
     {
        ++count;
        n=(n-1)&n;
     }
    }

    同样一个问题,位运算可以提高程序的运行效率。

    下面讲一下关于奇偶性的判断。

    常规方法

    public static boolean isOdd(int i){

            return i % 2 != 0;

    }

    位运算方法

    public static boolean isOdd(int i){

            return (i & 1) != 0;

    public boolean isOdd(int a){   
        if((a&1) != 1){   //是奇数   
            return true;   
        }   
        return false;   
    }  

    说明:

    我们知道计算机中的数字通常用二进制补码表示。

    如果为正数,补码与原码相同,直接看最后一位(因为数字1的前面N位均为0,跟它做与运算,前面肯定为0),奇数为1,偶数为0,与1相与,结果不变。

    如果为负数,补码转原码:保持符号位不动,其它各位取反+1,即为负数的绝对值原码全部取反+1。还是看最后1位,先取反,再+1,结果还是和原来相同。进行与运算时还是原来的末位,所以用跟1做与运算还是保持原来的结果。
    ---------------------
    作者:taizhoufox
    来源:CSDN
    原文:https://blog.csdn.net/taizhoufox/article/details/4583243
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    LINUX学习-Mysql集群-一主多从
    LINUX学习-Mysql集群-主主备份
    LINUX学习-Mysql集群-主从服务器备份
    LINUX学习-Nginx+JDK+Tomcat+Mysql搭建JAVA WEB
    LINUX学习-Nginx实现https
    LINUX学习-Nginx服务器的反向代理和负载均衡
    LINUX学习-PHP安装
    LINUX学习-Mysql安装
    Lens in Scala
    scala中的 Type Lambda
  • 原文地址:https://www.cnblogs.com/nickup/p/9809383.html
Copyright © 2011-2022 走看看