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

【算法】位运算

🌈个人主页:秦jh_-CSDN博客
🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12862161.html?fromshare=blogcolumn&sharetype=blogcolumn&sharerId=12862161&sharerefer=PC&sharesource=qinjh_&sharefrom=from_link

 9efbcbc3d25747719da38c01b3fa9b4f.gif​ 

目录

基础位运算

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

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

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

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

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

异或(^)运算的运算律


前言

    💬 hello! 各位铁子们大家好哇。

             今日更新了位运算的相关内容
    🎉 欢迎大家关注🔍点赞👍收藏⭐️留言📝

基础位运算

位运算符:

  • 左移:<<
  • 右移:>>
  • 按位取反:~
  • 按位与:&  (有0就是0)
  • 按位或:|      (有1就是1)
  • 按位异或:^    (相同为0,相异为1/无进位相加)

这里规定,二进制数中,第一位是最右边那位。起始下标是0,最后一位是最左边那位,下标是31。这样是为了方便位移操作与下标对应。比如:想把第三位右移到第一位,它的下标是2,此时右移两位即可。

 

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

 (n>>x)&1

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

 n |= (1<<x)

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

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

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

lowbit=n & (-n)  

原理:-n要对n取反加1。取反加1后,就将最右侧的1的左边区域全部相反,右边不变。

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

n&(n-1)

原理:(n-1)的含义是,将最右侧的1,右边的区域(包含1)全部变成相反。

异或(^)运算的运算律

  • a^0=a
  • a^a=0
  • a^b^c=a^(b^c)

下图是第三种运算律的简单证明:(无进位相加)

相关文章:

  • OpenCV计算摄影学Computational Photography
  • 【IEEE出版,往届会后3个月EI检索 | 西华大学主办 | 中英文期刊、SCI期刊推荐】第四届能源、电力与电气国际学术会议(ICEPET 2025)
  • DeepSeek+Kimi生成高质量PPT
  • 智慧家居中的视频监控系统-------2、MJPG-streamer方案的实现
  • 迅为RK3568开发板篇Openharmony配置HDF控制UART-实操-HDF驱动配置UART-配置 rk3568_uart_config.hcs
  • 即将发布书籍 - Yocto项目实战教程:高效定制嵌入式Linux系统
  • 为什么要将PDF转换为CSV?CSV是Excel吗?
  • 如何实现应用程序与中间件的类进行隔离
  • 无人机实战系列(二)本地摄像头 + Depth-Anything V2
  • python学习一
  • 算法系列之搜素算法-二分查找
  • 一.Vue中的条件渲染
  • vue 修改el-tree高亮样式
  • Visual Studio 中 C/C++ 函数不安全警告(C4996)终极解决方案:分场景实战指南
  • 一周热点:Replit-用于下单的移动应用程序
  • 【Pandas】pandas Series where
  • 欧拉回路与哈密尔顿回路: Fleury算法与Hierholzer 算法(C++)
  • 从图片生成3维场景--NERF原理解析及加速版HashNeRF-pytorch代码实现
  • (九)Mapbox GL JS 中 Marker 图层的使用详解
  • 学习笔记04——JMM内存模型
  • 台湾关闭最后的核电,岛内担忧“非核家园”缺电、涨电价困局难解
  • 新华每日电讯:博物馆正以可亲可近替代“高冷范儿”
  • 菲律宾中期选举结果揭晓,马科斯与杜特尔特家族重回“权力的游戏”
  • 小米汽车回应部分SU7前保险杠形变
  • 法律顾问被控配合他人诈骗酒店资产一审判8年,二审辩称无罪
  • 特朗普政府涉税改法案遭众议院预算委员会否决