ACM中的位运算技巧

Posted black-treex

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACM中的位运算技巧相关的知识,希望对你有一定的参考价值。

听说位运算挺好玩的,那这节总结一下ACM中可能用到的位运算技巧。(可能更新

XOR运算极为重要!!(过[LC136](只出现一次的数字 - 力扣(LeetCode)):数组中每个数字都出现两次,只有一个出现一次,找到出现一次的数字)

1. 如果我们对 0 和二进制位做 XOR 运算,得到的仍然是这个二进制位
a⊕0=a
2. 如果我们对相同的二进制位做 XOR 运算,返回的结果是 0
a⊕a=0
3. XOR 满足交换律和结合律
a⊕b⊕a=(a⊕a)⊕b=0⊕b=b

<<一次相当于*2,>>一次相当于/2

使用:

  1. 判断奇偶数(数&1,为1奇数;为0偶数)
  2. 获取二进制为是1还是0(&运算)
  3. 交换两个整数变量的位置
  4. 不用判断语句,求整数的绝对值

 

以上是关于ACM中的位运算技巧的主要内容,如果未能解决你的问题,请参考以下文章

C语言的位运算

c++中的位运算计算问题

Java中的位运算

Java中的位运算符

Java中的位运算

位运算和enum中的位运算