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

常见位运算总结

1.基础位运算

左移 (<<): 最左侧位不要了, 最右侧补 0

右移(>>): 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)

按位取反(~):如果该位为 0 则转为 1, 如果该位为 1 则转为 0

按位与( & )1&1=11&0=00&0=0有0就是0
按位或( | )1|1=11|0=10|0=0有1就是1
按位异或( ^ )1^1=00^0=01^0=1相同为0,相异为1

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

 方法:(n>> x)&1 

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

 方法:n=n | ( 1<<x )

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

 方法:n=n&( ~( 1<<x ) )

 

5. 提取一个数n二进制中最右侧的1 

 方法:n&-n

6.去掉一个数二进制表示中最右侧的1 

方法:n&(n-1) 

 

7.异或运算的运算律 

  1. a^0=a
  2. a^a=0
  3. a^b^c=a^(b^c)

http://www.lryc.cn/news/390703.html

相关文章:

  • 自动化任务工具 -- zTasker v1.94 绿色版
  • mybatis mapper.xml 比较运算符(大于|小于|等于)的写法: 转义和<![CDATA[]]>
  • UE5的基本操作
  • C++ 实现学生成绩管理系统
  • Elasticsearch 第四期:搜索和过滤
  • 力扣1124.表现良好的最长时间段
  • 算法训练营day67
  • 人工智能--图像语义分割
  • fl studio20和21用哪一个好?FL-Chan from FL Studio欣赏
  • OpenCV直方图计算函数calcHist的使用
  • 09 docker 安装tomcat 详解
  • 44.实现管理HOOK点的链表对象
  • Unity小知识
  • 【Jupyter Notebook与Git完美融合】在Notebook中驾驭版本控制的艺术
  • Python开发者必看:内存优化的实战技巧
  • Golang | Leetcode Golang题解之第214题最短回文串
  • 【ajax实战08】分页功能
  • 基于Hadoop平台的电信客服数据的处理与分析②项目分析与设计---需求分析-项目场景引入
  • debug-mmlab
  • 年轻人为什么那么爱喝奶茶?
  • 手写数组去重
  • Firewalld 防火墙
  • Hive查询优化 - 面试工作不走弯路
  • 【VUE3】uniapp + vite中 uni.scss 使用 /deep/ 不生效(踩坑记录三)
  • 容器部署rabbitmq集群迁移
  • DP:背包问题----0/1背包问题
  • React antd umi 监听当前页面离开,在菜单栏提示操作
  • 在 Windows PowerShell 中模拟 Unix/Linux 的 touch 命令
  • 鸿蒙NEXT
  • VUE3-Elementplus-form表单-笔记