【算法】基础算法005之位运算

👀樊梓慕:个人主页

 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C++》《Linux》《算法》

🌝每一个不曾起舞的日子,都是对生命的辜负

1.基础位运算

  • &:有0为0;

  • |:有1为1;

  • ^:相同为0,相异为1 / 无进位相加

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

  • ( n>>x ) & 1 

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

  • n |= 1 << x

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

  • n &= ~( 1<<x )

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

  • n & -n

 -n就是对n连同符号位取反然后+1,本质是将最右侧的1左面的区域全部变成相反

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

  • n&(n-1)

本质是将最右侧的1,右侧的区域(包括1)全部变成相反。

7.异或操作的运算率

  • a^0=a
  • a^a=0;(消消乐)
  • a^b^c=a^(b^c),即异或时不必考虑顺序,利用无进位相加快速得出结果即可。
a 1 0 1 1 0 1 0
b 0 0 1 0 1 0 1
c 1 0 1 0 0 0 1

  0 0 1 1 1 1 0

=========================================================================

如果你对该系列文章有兴趣的话,欢迎持续关注博主动态,博主会持续输出优质内容

🍎博主很需要大家的支持,你的支持是我创作的不竭动力🍎

🌟~ 点赞收藏+关注 ~🌟

=========================================================================

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樊梓慕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值