👀樊梓慕:个人主页
🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C++》《Linux》《算法》
🌝每一个不曾起舞的日子,都是对生命的辜负
1.基础位运算
&:有0为0;
|:有1为1;
^:相同为0,相异为1 / 无进位相加
2.给一个数n,确定它的二进制表示中的第x位的值
- ( n>>x ) & 1
3.将一个数n的二进制表示的第x位修改成1
- n |= 1 << x
4.将一个数n的二进制表示的第x位修改成0
- n &= ~( 1<<x )
5.提取一个数n的二进制表示中最右侧的1
- n & -n
-n就是对n连同符号位取反然后+1,本质是将最右侧的1左面的区域全部变成相反
6.去掉一个数n的二进制表示中最右侧的1
- n&(n-1)
本质是将最右侧的1,右侧的区域(包括1)全部变成相反。
7.异或操作的运算率
- a^0=a
- a^a=0;(消消乐)
- a^b^c=a^(b^c),即异或时不必考虑顺序,利用无进位相加快速得出结果即可。
a 1 0 1 1 0 1 0 b 0 0 1 0 1 0 1 c 1 0 1 0 0 0 1 0 0 1 1 1 1 0
=========================================================================
如果你对该系列文章有兴趣的话,欢迎持续关注博主动态,博主会持续输出优质内容
🍎博主很需要大家的支持,你的支持是我创作的不竭动力🍎
🌟~ 点赞收藏+关注 ~🌟
=========================================================================