位运算

本篇文章主要罗列一些位运算的技巧,加强记忆。

  1. 消去$x$二进制位的最后一位$1$​​​​​​ :x&(x-1)

  2. 判断$x$是否是$2$的幂 :x&(x-1)==0

  3. 判断数$x$的二进制有几个$1$ :每次去掉最低位$1$,统计次数

  4. 两个数$a,b$,$a\bigoplus b\bigoplus b=a$​,一个数异或两次另一个数得到自身,由异或运算满足结合律很好理解。

  5. 不设中间值,交换两个变量$a,b$​的值 : a=a^b,b=a^b,a=a^b.

  6. a^b<=a+b 例题:永夜的报应

  1. 取余操作$a\pmod b$​,当除数$b$​为$2^n$​​​​​​​​形式,可以转化为a&(b-1)​​,效率更高。

暂时想到这么多,,,

Author

叶润繁

Posted on

2021-11-05

Licensed under