常见位运算的总结

目录

一、基础位运算

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

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

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

五、位图思想

六、提取一个数(n)二进制表示中最右侧的1(lowbit)

七、干掉一个数n的最右侧的1

八、位运算的优先级

九、异或运算的规律


一、基础位运算

        按位或: |        有1就是1

        按位与: &        有0就是0

        按位异或:^        无进位相加(或相同为0,相异为1)

        左移:<<

        右移:>>

        按位取反:~


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

        将n右移x位,再按位与1,结果是1就为1,是0就为0,如图:


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

        将1左移x位,在按位或1,如图:


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

        将1左移x位,再取反,取反后的结果按位于n,如图:


五、位图思想

        类似hash表,让一个数的二进制为为1或者0进行标记,如图:


六、提取一个数(n)二进制表示中最右侧的1(lowbit)

        n & (-n),负数的二进制位要按位取反后再+1,然后按位与上n,就能得到最右侧的1,如图:


七、干掉一个数n的最右侧的1

        n & (n - 1),n-1能得到最右侧的1左边都为1,当前为0,再按位与上 n - 1,就能干掉最右侧的1,如图:


八、位运算的优先级

        直接不管,想谁先算就把谁括号括起来。


九、异或运算的规律

        n ^ 0 = n;任何与0异或的数等于它本身。

        n ^ n = 0;自己和自己异或等于0。

        a ^ b ^ c = b ^ c ^ a;满足交换律

        (a ^ b) ^ c = a ^ (b ^ c);满足结合率


都看到这了,点个赞再走吧,谢谢谢谢谢

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

tao滔不绝

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

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

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

打赏作者

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

抵扣说明:

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

余额充值