算法 -- 位运算

1.基础位运算

**&(按位与):**只要有0就是0

|(按位或):只要有1就是1

**^(按位异或):**相同为0,相异为1 /不进位相加

~(按位取反):0变1,1变0

<< :右移

>> :左移

2.例题

2.1确定一个数的二进制第x位是1还是0(数的最后一位为0位)

(n>>x)&1

2.2将一个数的二进制表示的第x位修改成1

n |=(1<<x)

2.3将一个数的二进制表示的第x位修改成0

n &=(~(1<<x))

2.4提取一个数二进制最右侧的1

n & (-n)

给一个数取反相当于~再加1

2.5干掉一个数二进制最右侧的1

n & (n-1)

3.异或运算律

1.a^0=a;

2.a^a=0;

3.a^b^c=a^(b^c)

相关推荐
胖大和尚11 分钟前
在C++的类中,是否可以把函数声明成__device__
c++·cuda
脚踏实地皮皮晨14 分钟前
003003001_Grid控件
开发语言·windows·算法·c#·visual studio
十年磨剑走天涯18 分钟前
C++ STL 容器操作复杂度速查表
开发语言·c++
always_TT24 分钟前
【Python requirements.txt 依赖管理】
开发语言·python
Hi李耶26 分钟前
【LeetCode】6-Z字形变换
算法·leetcode·职场和发展
ziguo112227 分钟前
Windows API MessageBox 函数详解
c语言·c++·windows·visualstudio
王老师青少年编程31 分钟前
2023年CSP-J初赛真题及答案解析(11-15)
c++·真题·csp-j·答案·csp·初赛·信奥赛
15Moonlight33 分钟前
C++进阶(09):特殊类设计
开发语言·c++
XiaoYu1__35 分钟前
算法进阶·其一:用SCC、Tarjan算法与缩点思想解决有向图的连通关系及2-SAT问题的拓展
算法
小O的算法实验室37 分钟前
AAAI-26,全局相关性学习:通过谱图神经网络增强进化算法
神经网络·学习·算法