zoukankan      html  css  js  c++  java
  • x&(x1)表达式的意义

    求下面函数的返回值 -- 统计1的个数
    -------------------------------------
    function func(x:int):int
    {
       var countX:int = 0;
     
       while(x)
      {
        countX++;
        x= x & (x - 1);
      }
      return countX;
    }

    假定x = 9999
    10011100001111
    答案: 8

    思路: 将x转化为2进制,看含有的1的个数。
    注: 每执行一次x = x&(x-1),会将x用二进制表示时最右边的一个1变为0,因为x-1将会将该位(x用二进制表示时最右边的一个1)变为0。




    判断一个数(x)是否是2的n次方
    -------------------------------------
    public Text
    {
     public function Text()
     {
        var x:int = 9999;
        trace(func(x));
     }
     
     public function func():int
     {
          if((x & (x - 1)) == 0)
              return 1;
          else
             return 0;
     }
    }


    注:
    (1) 如果一个数是2的n次方,那么这个数用二进制表示时其最高位为1,其余位为0。

    (2) == 优先级高于 &

  • 相关阅读:
    CTS2019 题解
    CTS2019 & APIO2019 游记
    WF 2019
    BZOJ 2560 及其加强
    UOJ 191
    SCOI2019 退役记
    HTML5 本地存储
    js数据类型
    解析json成javascript对象
    http状态码;
  • 原文地址:https://www.cnblogs.com/atong/p/2888230.html
Copyright © 2011-2022 走看看