美文网首页
常用位运算

常用位运算

作者: 眼若繁星丶 | 来源:发表于2021-03-21 21:24 被阅读0次

    位运算常见操作

    判断奇偶

    • (x & 1) == 1 == x % 2 == 1判断奇数
    • (x & 1) == 0 == x % 2 == 0判断偶数

    位运算除法

    x / 2 == x >> 1

    >>> 为无符号右移,高位补0。>>为有符号右移,正数高位补0,负数高位补1。

    获取二进制最右边的 1 :x & (-x)

    • 求补码的方式:按位取反加1

    -x = \lnot x + 1

    • 取完补码之后,可以看出,结果是最右边的 1 不动,然后其他所有位都按位取反。
    • 要清楚,计算机计算负数的时候,会求其补码,正数的补码是自己本身,负数的补码就是上面的求法,这样互为相反数的两个补码进行 &,就会得到最后一位 1 ,其前面和后面的1都会被过滤掉,后面的0会保留,形成新的二进制数。

    leetCode 231

    将二进制最右边的 1 去掉: x & (x - 1)

    • 首先要了解 x - 1会发生什么,从二进制的角度,这会影响最后的1以后的数位,前面不会影响。然后 -1 之后,最右边的 1 变成 0,后面的0都会变成 1。
    • 然后 &操作,结果上就是把 最右边的 1 去掉。

    leetCode 231

    相关文章

      网友评论

          本文标题:常用位运算

          本文链接:https://www.haomeiwen.com/subject/tniocltx.html