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

  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;
     }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,564评论 0 13
  • 姓名:李浩然 学号:16030410020 转自:http://blog.csdn.net/Dreaming_My...
    洛花无阅读 2,777评论 0 1
  • 1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或...
    哈哈哎呦喂阅读 782评论 0 0
  • @张强 Jonny 自由的向往,激情的释放,生活的枷锁无法阻挡,你的闪亮,来吧来吧,一起欢唱,加入星妈帮,一起加油...
    花花的樱花阅读 238评论 0 0
  • 一、收件人邮箱简写Jenkins首页-系统管理-系统设置,Extended E-mail Notification...
    BestFei阅读 2,400评论 2 0

友情链接更多精彩内容