x = x & (x - 1)
含义:这条语句执行一次,就会把x用二进制格式表示时的最右边的一个二进制1变为二进制0,因为x-1会将该位(x用二进制表示时最右边的一个二进制1)变为0;

应用1:把一个整数用二进制表示时,其中二进制1的个数;
int Func(int x)
{
  int count = 0;
  while(x)
  {
    x = x & (x - 1);
    count++;
  }
  return count;
};
设x=9999,其二进制格式为: 10011100001111; 则count=8;
思路:将x转化为二进制格式,统计一下含有的二进制1的个数;

应用2:判断一个整数(x)是否是2的n次方;
int Func(int x)
{
  if((x & (x - 1)) == 0)
  {
    return 1;  //是
  }
  else
  {
    return 0;  //否
  }
};
思路:如果一个整数是2的n次方,那么,这个数用二进制表示时,其最高位为二进制1,其余位为二进制0;

转载于:https://www.cnblogs.com/aixingfou/archive/2011/10/21/2220222.html

表达式x=x(x-1)相关推荐

  1. Go 学习笔记(77)— Go 第三方库之 cronexpr(解析 crontab 表达式,定时任务)

    cronexpr 支持的比 Linux 自身的 crontab 更详细,可以精确到秒级别. ​ 1. 实现方式 cronexpr 表达式从前到后的顺序如下所示: 字段类型 是否为必须字段 允许的值 允 ...

  2. Go 学习笔记(62)— Go 中 switch 语句中的 switch 表达式和 case 表达式之间的关系

    switch 语句对 switch 表达式的结果类型,以及各个 case 表达式中子表达式的结果类型都是有要求的. 毕竟,在 Go 语言中,只有类型相同的值之间才有可能被允许进行判等操作. 1. sw ...

  3. 经典笔试上机考题-表达式求值

    相信参加过笔试面试同学应当见到过表达式求值这道题,下面列举的一道经典的考题,本文将同大家一起细细探讨一下表达式求值这一类问题的求法,希望抛砖引玉,其中有不妥的地方也请大家多多批评指正. /* 功能:四 ...

  4. 使用Tensor Expression张量表达式处理算子

    使用Tensor Expression张量表达式处理算子 这是TVM中Tensor表达语言的入门教程.TVM使用特定于域的张量表达式来进行有效的内核构造. 本文将演示使用张量表达式语言的基本工作流程. ...

  5. Lambda 表达式基础理论与示例

    Lambda 表达式基础理论与示例 Lambda 表达式,也可称为闭包,推动 Java 8 发布的最重要新特性. Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中). 使用 Lam ...

  6. CodeGen编写自定义表达式标记

    CodeGen编写自定义表达式标记 CodeGen支持开发人员通过编写plug-in modules插件模块来定义自定义表达式标记的能力,以提供与这些标记相关联的逻辑.这种plug-in module ...

  7. 2021年大数据常用语言Scala(七):基础语法学习 条件表达式

    条件表达式 条件表达式就是if表达式,if表达式可以根据给定的条件是否满足,根据条件的结果(真或假)决定执行对应的操作.scala条件表达式的语法和Java一样. 有返回值的if 与Java不一样的是 ...

  8. [JAVAEE] Thymeleaf 基本语法:常用表达式

    Thymeleaf 基本语法 常用表达式 变量表达式 ${ } 使用方法:th:xx = "${ }" 获取对象属性值给 th:xx . 后台代码: Student s=new S ...

  9. 零起点学算法07——复杂一点的表达式计算

    零起点学算法07--复杂一点的表达式计算 Description 下面你来计算一个复杂一点的计算表达式 Input 没有输入 Output 输出表达式的值,保留2位小数 题目分析:根号要用sqrt来算 ...

  10. 赋值语句和赋值表达式

    学而时习之,温故而知新. 賦值语句将一个值指定给一个变量.在 Java 中賦值语句可以作为一个表达式. 将 = 作为赋值操作符 ,例如 int x = 3 注意:要给一个变量陚值,变量名必须在賦值操作 ...

最新文章

  1. java 多线程 同步 观察者 并发集合的一个例子
  2. thinkphp5项目--企业单车网站(七)
  3. 三分钟学会《门面模式》
  4. oracle 11g asm 磁盘组兼容属性
  5. dataframe for 循环 数据格式 python_Python中的for循环
  6. IOS响应式编程框架ReactiveCocoa(RAC)使用示例
  7. 使用nginx解决跨域问题
  8. 华硕老毛子(Padavan)——Ngrok内网穿透解决方案
  9. 电路知识--认识原理图(三)
  10. ionic + cordova 使用 cordova-gallery-api 获取本地相册所有图片
  11. 如何搭建私密云存储之ownCloud
  12. Spring Cloud 与微服务学习总结(16)—— 微服务架构统一安全认证设计与实践
  13. java集合框架的选用 若是数据量很大,0421测试题
  14. 线性代数 课堂笔记 +思维导图
  15. top 内存耗用:VSS/RSS/PSS/USS
  16. Java 使用pio生成word
  17. 转。WEB前端特效。统计图,3D切换图片,摇号,转盘抽奖
  18. UDP TCP socket EtherCAT都是什么?
  19. Android项目实践(四)——音乐播放器APP
  20. 如果应下载文件,请添加 MIME 映射

热门文章

  1. 二叉树展开为链表Python解法
  2. python十进制小数转二进制_python十进制和二进制的转换 (含浮点数)
  3. Android钢琴滑动代码,android 钢琴界面实现
  4. 放大器的传递函数_保证放大器的稳定性什么最重要?反馈电阻一定要选对!
  5. java 类说明,java基础类型说明
  6. flex 引入css,Flex常用布局
  7. python3 打印_Python 3 进阶 —— print 打印和输出
  8. keil5安装_keil5,软件安装包及安装教程
  9. opencv函数findcontours_OpenCV系列之轮廓入门 | 二十一
  10. 卧槽,柠檬也能做汽车???