zoukankan      html  css  js  c++  java
  • 位运算功能大全

    去掉最后一位
    示例:\((101101 \Rightarrow 10110)\)
    位运算:\(x>>1\)

    在最后加一个0
    示例:\((101101\Rightarrow1011010)\)
    位运算:\(x<<1\)

    在最后加一个1
    示例:\((101101\Rightarrow1011011)\)
    位运算:\((x<<1)+1\)

    把最后一位变成1
    示例:\((101100\Rightarrow101101)\)
    位运算:\(x|1\)

    把最后一位变成0
    示例:\(101101\Rightarrow101100\)
    位运算:\((x|1)-1\)

    最后一位取反
    示例:\((101101\Rightarrow101100)\)
    位运算:\(x^1\)

    把右数第k位变成1
    示例:\((101001\Rightarrow101101,k=3)\)
    位运算:\(x|(1<<(k-1))\)

    把右数第k位变成0
    示例:\((101101\Rightarrow101001,k=3)\)
    位运算:\(x\ and\ ~(1<<(k-1))\)

    右数第k位取反
    示例:\((101001\Rightarrow101101,k=3)\)
    位运算:\(x (xor (1<<(k-1)))\)

    取整数n在二进制表示下的第k位
    位运算:\((n>>k)\ and \ 1\)

    取整数n在二进制表示下的后k位
    位运算:\(n\ and\ ((1<<k)-1)\)

    取末k位
    示例:\((1101101\Rightarrow1101,k=4)\)
    位运算:\(x\ and\ ((1<<k)-1)\)

    取右数第k位
    示例:\((1101101\Rightarrow1,k=4)\)
    位运算:\(x>>(k-1)\ and\ 1\)

    把末k位变成1
    示例:\((101001\Rightarrow101111,k=4\)
    位运算:\(x|((1<<k)-1)\)

    末k位取反
    示例:\((101001\Rightarrow100110,k=4\)
    位运算:\(x\ xor\ ((1<<k)-1)\)

    把右边连续的1变成0
    示例:\((100101111\Rightarrow100100000)\)
    位运算:\(x\ and\ (x+1)\)

    把右起第一个0变成1
    示例:\((100101111\Rightarrow100111111\)
    位运算:\(x|(x+1)\)

    把右边连续的0变成1
    示例:\((11011000\Rightarrow11011111)\)
    位运算:\(x|(x-1)\)

    取右边连续的1
    示例:\((100101111\Rightarrow1111)\)
    位运算:\((x\ xor\ (x+1))>>1\)

    去掉右起第一个1的左边
    示例:\((100101000\Rightarrow1000)\)
    位运算:\(x\ and\ (x\ xor\ (x-1))\)

  • 相关阅读:
    力扣leetcode 435. 无重叠区间
    C++中的快读和快写
    python安装wordcloud库报错
    python习题 随机密码生成 + 连续质数计算
    python 四位玫瑰数 + 100以内素数求和
    解决git add README.md 时报错 fatal: pathspec 'README.md' did not match any files
    洛谷P3817 小A的糖果 贪心思想
    多机部署之session共享解决方案-copy
    一点区块链资料-copy
    kafka集群搭建及结合springboot使用-copy
  • 原文地址:https://www.cnblogs.com/Luvwgyx/p/8409836.html
Copyright © 2011-2022 走看看