• 位运算基础与技巧


    位运算

    标志 ↓=意义
    a & b 按位与
    `a b`
    a ^ b 按位异或
    ~x 按位取反
    ! a 非运算
    a >> x 右移运算
    a << x 左移运算

    位运算常用技巧

    操作 表示
    (x)(i) 位取反 x ^= (1 << i)
    (x)(i) 位制成 1 ` x
    (x)(i) 位制成 (0) x &= -1 ^ (1 << i)x &= ~(1 << i)
    (x)(2) 取模的结果 x & 1
    (x) 的第 (i) 位是否为 x & (1 << i)(x >> i) & 1
    (x) 的最后一位 x & -x
    (x) 的绝对值 (x ^ (x >> 31) ) - (x >> 31)(int 型)
    判断 (x) 是否不为 (2) 的整次方幂 x & (x - 1)
    判断 (a) 是否不等于 (b) a != ba - ba ^ b
    判断 x 是否不等于 −1 x != -1x ^ -1x + 1~x

    负数表示

    用补码来表示负数

    (∵−1=0−1)
      (0=000⋯00)
      (1=000⋯01)
    (∴−1=111⋯11)

    同理:
    (−2=111⋯110)
    (−3=111⋯101)
    (−4=111⋯100)
    (...)

    于是有 -x = ~x + 1

    参考来源:
    https://www.acwing.com/blog/content/2415/
    https://www.cnblogs.com/rebirth-death2019/p/13778582.html

    作者:Jude_Zhang
    关于博主:评论和私信会在第一时间回复。或者直接私信我。
    版权声明:本博客所有文章除特别声明外,均采用BY-NC-SA 许可协议。转载请注明出处!
    支持博主:如果您觉得文章对您有帮助,可以点击文章下方赞一下。您的鼓励是博主的最大动力!
  • 相关阅读:
    Redis命令
    Linux命令
    SQL语句
    Redis集群
    Redis主主复制、主从复制
    关于Java乱码
    组合, 封装, 访问限制机制, property装饰器, 多态
    继承
    小练习
    面向过程与面向对象, 类和对象
  • 原文地址:https://www.cnblogs.com/judezhang/p/14333210.html
Copyright © 2020-2023  润新知