美文网首页
一些你可能不注意的知识点

一些你可能不注意的知识点

作者: VictorBXv | 来源:发表于2018-01-26 15:05 被阅读0次
    1. 关于&,|,^几种运算符
      • 与运算:同为1,才为1
        a&b < min(a,b),即两个数做与运算,计算出来的结果会比两个数中最小的数还要小
      • 或运算:只要有一个为1,就为1
        2*max(a,b)> a|b >max(a,b),即两个数做或运算,计算出来的结果比两个数中最大的数还要大,但是不会大于最大的数的二倍
      • 异或运算:不同才为1
        a^b计算出来的结果不确定,既有可能比最小的数还小,也有可能比最大的数还大,也有可能在这两个数之间。
    这几种运算符的计算结果是有其定义确定的
    1. 四分之三用位运算来实现
      (capacity >> 1) + (capacity >> 2)

    2. 将任意一个数转换成2的幂次方

       /**
        * 将任意一个数转换成2的幂次方
        * 是2的幂次方的数的特点:
        * 2 =10=1+1
        * 4 =100=11+1
        * 8 =1000=111+1
        * 16=10000=1111+1
        * 32=100000=11111+1
        */
       private int roundUp2PowerOf2(int i) {
           i--;
           i = i >>> 1;
           i = i >>> 2;
           i = i >>> 4;
           i = i >>> 8;
           i = i >>> 16;
           return i;
       }

    相关文章

      网友评论

          本文标题:一些你可能不注意的知识点

          本文链接:https://www.haomeiwen.com/subject/bbqmbxtx.html