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

【算法】位运算

🌈个人主页:秦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)

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


http://www.kler.cn/a/560365.html

相关文章:

  • 4. Spring Cloud Gateway 入门与使用
  • 牛客周赛 Round 82(思维、差分、树状数组、大根堆、前后缀、递归)
  • JavaWeb基础专项复习4——会话对象Session and Cookie
  • 【深度学习】Java DL4J 基于MLP构建农业数据分析模型
  • 软件需求管理办法,软件开发管理指南(Word原件)
  • 纯电动轻型载货车能量流测试优化研究
  • 鸿蒙开发深入浅出04(首页数据渲染、搜索、Stack样式堆叠、Grid布局、shadow阴影)
  • 网络安全漏洞管理要求 网络安全产品漏洞
  • Day54(补)【AI思考】-SOA,Web服务以及无状态分步解析与示例说明
  • pyecharts介绍
  • 使用Windbg调试目标进程排查C++软件异常的一般步骤与要点分享
  • DeepSeek 助力 Vue 开发:打造丝滑的文本输入框(Text Input)
  • 自然语言处理中的检索增强生成研究综述
  • NVIDIA H 系列 GPU与deepseek开源FlashMLA
  • 【CSS】HTML元素布局基础总结
  • c#丰田PLC ToyoPuc TCP协议快速读写 to c# Toyota PLC ToyoPuc读写
  • 分布式简单理解
  • STM32 利用SysTick实现高精度计时
  • Linux版本控制器Git【Ubuntu系统】
  • 定长内存池的实现、测试及错误分析