当前位置: 首页 > news >正文

不会位运算?常见位运算总结!~~~

 这里是Themberfue

本章介绍的主要是一些常见的位运算技巧。 

基础位运算 

· << 左移运算符 => 向某个数字的二进制形式左移 n 位

· >> 右移运算符 => 向某个数字的二进制形式右移 n 位

· ~ 取反运算符,0变1,1变0

· & 与运算符,有0就是0

· | 或运算符,有1就是1

· ^ 异或运算符,相同为0,不同为1,也可以理解为无进位相加

 给一个数 n ,确定它的二进制表示中的 x 位是0还是1

· 将 n 右移 x 位,然后与上1,若结果为0,则为0,结果为1,则为1。

· (n >> x) & 1

· 如图所示

 

将一个数 n 的二进制表示的 x 位修改为1

· 将 1 左移 x 位,然后或上 n,即可

· n | (1 << x)

· 如图所示

 

 将一个数 n 的二进制表示的 x 位修改为0

· 将 1 左移 x 位,取反后与上 n,即可

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

 

提取一个数 n 二进制表示最右侧的1

 n & -n

 

 干掉一个数 n 二进制表示最右侧的1

n & (n - 1)

 

 异或(^)运算规律

· a ^ 0 = a

· a ^ a = 0

· a ^ b ^ c = a ^ (b ^ c)


http://www.mrgr.cn/news/46565.html

相关文章:

  • 书生大模型基础岛第四关
  • 实力认证 | 海云安入选《信创安全产品及服务购买决策参考》
  • java添加企微 群机器人 异常通知 流程
  • LeetCode热题100-二叉树的中序遍历【JavaScript讲解】
  • Cesium加载地形
  • Android 15应用适配指南:所有应用的行为变更
  • 【C语言】使用结构体实现位段
  • 线程(五)线程的同步和互斥——线程信号量
  • ZigMa: A DiT-style Zigzag Mamba Diffusion Model
  • OpenJudge | Disk Tree
  • vue 条件渲染
  • UI开发:从实践到探索
  • YOLO v1详解解读
  • windows中使用类似tree的功能
  • 论文精读:基于概率教师学习的跨域自适应目标检测(ICML2022)
  • yolov11人物背景扣除
  • USB转多路RS485应用-组态软件调试
  • Java基础常见面试题总结(1-2)
  • 04. prometheus 监控 Windows 服务器
  • 架构设计笔记-7-系统架构设计基础知识
  • 【SQL】深入探索SQL调优:提升数据库性能的全面指南
  • 5.toString()、构造方法、垃圾回收、静态变量与静态方法、单例设计模式、内部类
  • 以openai的gpt3 5为例的大模型流式输出实现(原始、Sanic、Flask)- 附免费的key
  • 【QT Quick】页面布局:手动定位与坐标系转换
  • python .pyc是什么文件
  • Java之HashMap详解