算法 -- 位运算

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)

相关推荐
hele_two1 小时前
VS Code + CMake 调用 SDL2 & SDL2_image 完整编译教程(Windows 平台)
c++·windows·vscode·图形渲染
谙弆悕博士1 小时前
快速学C语言——第2章:编程规范与代码风格
服务器·c语言·开发语言·经验分享·程序人生·学习方法·业界资讯
byzh_rc1 小时前
[AI编程从入门到入土] 装饰器decorator
开发语言·python·ai编程
祁_z1 小时前
大模型轻量化:模型格式选型(ONNX/GGUF/TFLite) + 压缩三剑客(量化/剪枝/蒸馏)+ 大模型推理执行流程介绍
算法·机器学习·剪枝·量化·蒸馏·大模型轻量化
贫民窟的勇敢爷们2 小时前
Java 与 Python 如何选型与融合
java·开发语言·python
流氓也是种气质 _Cookie2 小时前
Chrome Performance常见名词解释(FP, FCP, LCP, DCL, FMP, TTI, TBT, FID, CLS)
开发语言·javascript·ecmascript
绛橘色的日落(。・∀・)ノ2 小时前
机器学习之手写数字识别
算法
流年如夢2 小时前
单链表Ⅲ(LeetCode)
数据结构·算法·leetcode·职场和发展
gihigo19982 小时前
基于MATLAB的LTE物理层仿真系统
开发语言·matlab