1、n&(n-1)(注意这里是X&Y不是X*Y)表示将一个数据比如7按照二进制表示后,将最右边的1变成0,比如将0111变成0110. 这个公式有两个左右,一个作用是可以用来统计一个数1的个数,也可以用于判断一个数据是否为2的幂。判断1的个数while(n&(n-1))方式统计次数,判断是否为2的幂则直接判断n&(n-1)是否==0,等于0则是否则不是。因为2的幂二进制数只会包含一个1.

2、n&(-n)表示什么,这个表示将一个数只是保留二进制下最右边的1的位,而其他位变成0.比如1111变成0001.这个公式在判断数组中除了两个数出现一次,其余数字出现两次中,可以通过与或所有数据得到的结果后,以这个结果中最右边位为界限,将数组划分为两个数组。因为这个位置=1则说明两个不同的数据在这位的位一定是一个为0一个为1(因为0^1=1),这样就可以把数组分成两个组了。

最新文章

  1. Hibernate flush理解
  2. python菜鸟excel教程-Python操作Excel的Xlwings教程(一)
  3. 十三条道德准则-富兰克林
  4. mac中安装activeMQ
  5. MySQL存储引擎MyISAM和 InnoDB
  6. [剑指offer]面试题第[59-1]题[Leetcode][第239题][JAVA][滑动窗口的最大值][单调队列][优先队列]
  7. PolarDB for PostgreSQL 开源路线图
  8. c#.net操作注册表RegistryKey
  9. 第9周作业-成本计划
  10. BlackBerry不能上网问题解决方案
  11. 3. 乱石穿空,惊涛拍岸,卷起千堆雪。 2. 故垒西边,人道是,三国周郎赤壁。 4. 江山.... hai太乱了,我们来写程序排序输出到磁盘文件中
  12. 离线语音遥控器控制红外设备
  13. maya! board_送给自学3d建模的你,自学maya,zbrush,substance一个月的感想
  14. 送君千里终须一别,1胜2负,唯一战胜过AlphaGo的人退役了
  15. RK3326[Android 8.1],获取BT、WIFI地址
  16. 阿里云服务器---排查挖矿病毒
  17. java map包_java Map
  18. C++解析AVI文件格式学习总结
  19. 【云计算与大数据概述 】课堂笔记
  20. sql中什么意思_百度知道

热门文章

  1. VCS仿真遇到【CNST-CIF】constraints inconsistency failure如何解决
  2. 分布式系统开发实战:分布式存储,分布式存储常用技术
  3. InterSystems开发者关系主管Dean:集成FHIR,改变游戏规则
  4. 计算机科学导论(5):计算机网络
  5. Qt下载网络图片到桌面
  6. 上网时遇到的 404 是什么意思?
  7. 信息安全工程师学习笔记《第二章》
  8. Vulkan【1】介绍
  9. 微信小程序设置底部tab选项卡
  10. 数字滚动(微信小程序)