算法 -- 位运算

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)

相关推荐
小白兔奶糖ovo10 小时前
【Leetcode】231. 2的幂
linux·算法·leetcode
xiaoxiaoxiaolll10 小时前
《Light: Science & Applications》合并BIC实现80倍阈值单模运行:超紧凑光子晶体激光器新突破
人工智能·算法·机器学习
Peter·Pan爱编程10 小时前
14. Lambda 表达式:随手可写的函数对象
c++·算法·ai编程
-To be number.wan10 小时前
算法日记 | 暴力枚举
学习·算法
s_w.h11 小时前
【 linux 】动静态库的制作
linux·运维·服务器·算法·bash
不想写代码的星星11 小时前
从分支预测角度看 C++:为什么你的热循环慢得离谱?
c++
过期动态11 小时前
【LeetCode 热题 100】接雨水
java·数据结构·算法·leetcode·职场和发展
春日见11 小时前
5分钟入门强化学习之动态规划算法与实现
大数据·人工智能·python·算法·机器学习·计算机视觉
bug和崩溃我都要11 小时前
Qt 封装 libmpv 全功能视频播放器开发指南
开发语言·qt·音视频
郝学胜-神的一滴11 小时前
Qt 高级开发 018:复刻经典登录界面布局与窗口美化全解析
开发语言·c++·qt·程序人生·用户界面