x = x(x-1)

news/2024/11/7 21:00:55/

 

执行一次x = x&(x-1),会将x用二进制表示时最右边的一个1变为0,因为x-1将会将该位(x用二进制表示时最右边的一个1)变为0。

如下面

int  x=9;int i;for ( i = 0; i < x; i++)

{

   x &= (x-1);

}

 执行结束 i = 2,因为9=1001,有2个1;类似如果x = 2013, 则 i = 9;

作用:
1、将x转化为2进制,看含有的1的个数。

2、判断x是否是2的幂。

二:&是位与的意思,就比如100&110=100,只有当两边都为1的时候才为1,其他时候都为0。(100第三个数为1,110的第三个数也为1,故结果的第三个数为1,其它都为0)位运算.&是位与的意思,只有当两边都为1时,才为1.
比如说x初始化为5,即其二进制表示为00000101,x-1=4,4的二进制表示为00000100,
x=x&(x-1)=5&4=101&100=100=4;
大致意思如此


http://www.ppmy.cn/news/404074.html

相关文章

matlab怎么表示x的平方,用matlab算多项式x平方

matlab 多项式函数相加 用符号变量编写:y=1;symsxfori=1:5y=y+x^i;endyy=1+x+x^2+x^3+x^4+x^5求y(3)输入:subs(y,x,3)ans=364或用字符变量编写,代值转成符号变 matlab输入多项式 symssp=(s+2)*(s+5)*(s+6)再问:中间那个乘号能去掉吗再答:最好不要省略,或者说绝对不能省略。…

红米note9和oppoK7x哪个好?红米note9和oppoK7x区别

红米note9和oppoK7x哪个好-红米note9和oppoK7x参数对比 红米note9&#xff1a;为用户带来6.67英寸LCD屏幕&#xff0c;支持120hz屏幕刷新 oppoK7x&#xff1a;采用一块6.5英寸LCD屏&#xff0c;分辨率为2400x1080&#xff0c;支持90Hz刷新率180Hz触控采样率 红米note9和oppo…

C++完美转发解析

1. 完美转发的概念 完美转发&#xff08;Perfect Forwarding&#xff09;是 C11 中引入的一种编程技巧&#xff0c;其目的是在编写泛型函数时能够保留参数的类型和值类别&#xff08;左值或右值&#xff09;&#xff0c;从而实现更为高效且准确地传递参数。通过使用右值引用和…

Python语法基础01(列表,元组,字典)

Python基础语法 变量的命名与使用 变量名只能包含字母、数字和下划线&#xff0c;只能以字母和下划线为开头不能包含空格不能使用python保留字 列表&#xff0c;元组&#xff0c;字典 列表 定义列表(元素之间可以没有任何关系)&#xff1a;[] 例如 fruits["apple&qu…

游泳可以戴的耳机有哪些?四款专业的游泳耳机推荐

现在人们都开始热衷于运动健身&#xff0c;运动时大多会听音乐&#xff0c;市面上的运动耳机层出不穷&#xff0c;多数都是蓝牙耳机&#xff0c;但是有一些运动不太适合。 例如游泳&#xff0c;其他运动都可以将手机放在附近&#xff0c;但是游泳就不行了。所以游泳时可以听歌的…

【Git原理与使用】-- 初步认识

目录 Git版本控制器的引入 版本控制器 Git安装&#xff08;已安装可以跳过&#xff09; Linux-centos Linux-ubuntu Git基本操作 创建Git本地仓库 配置 Git 认识工作区、暂存区、版本库 工作区、版本库 stage暂存区 工作区内容使用Git管理 Git版本控制器的引入 #&…

算法题模板

​ 文章目录 面试Tips算法题模板注意点&#xff1a;Master公式对数器 & 比较器一些知识Map.entrySet链表、二叉树SetMap 常见排序插入排序归并排序快速排序堆排序堆的应用 数组习题二分法查找二叉树二叉树遍历&#xff08;递归方法&#xff09;二叉树遍历&#xff08;非递归…

左程云算法题一些leetcode练习题总结

​ 面试Tips 业务为主技巧为主笔试55%45%笔试需要淘汰率&#xff0c;更考察经验&#xff0c;笔试卷面分过 35/100面试30%70%技巧为主反而更考察基础&#xff08;比如窗口最大值最小值、单调栈、动态规划斜率优化&#xff09; 算法题模板 注意点&#xff1a; 子串、子数组必…