算法 -- 位运算

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)

相关推荐
Edward111111113 小时前
一AI名词
java·开发语言·数据库·学习
栈溢出了4 小时前
Redis repl_backlog 学习笔记
java·开发语言·redis·学习
urkay-4 小时前
Kotlin Flow分类
android·开发语言·kotlin
并不喜欢吃鱼4 小时前
从零开始 C++----- 十五.一文吃透 C++ 异常:try-catch、栈展开、自定义异常、异常安全 noexcept 底层全剖析
java·开发语言·jvm
ShallWeL4 小时前
【机器学习】(16)—— 数值数据
人工智能·python·算法·机器学习·数据分析
盐焗鹌鹑蛋4 小时前
【C++】AVL树
c++
gr95ZS6E64 小时前
基础入门java安全(一)--CC1基础分析
开发语言·python
hongyucai4 小时前
详解rlinf强化学习四步曲
人工智能·python·算法·架构
变量未定义~4 小时前
ST表-龙骑士军团【算法赛】
数据结构·算法