位运算符:

运算符

名字

说明

示例

&


按位与


参与运算的两数各对应的二进位相与


3&5结果为1


|


按位或


参与运算的两数各对应的二进位相或

3|5结果为7

^


异或



参与运算的两数各对应的二进位相异或,当 两对应的二进位相异时,结果为 1


3^5结果为6

<<


左移



左移n位(乘以2的n次方),左边丢弃,右边补 0


3<<1结果为6

>>


右移


右移n位(除以2的n次方),对无符号数,高位补 0,对于有符号数,高位补符号位

3>>1结果为1

X&1==1or==0,可以用 X&1 判断奇偶性,X&1>0 即奇数。
X = X & (X-1) 清零最低位的1
X & -X => 得到最低位的1
X&~X=>0

136. 只出现一次的数字、Leetcode的Go实现_李歘歘

137. 只出现一次的数字 II、Leetcode的Go实现_李歘歘的博客

231. 2 的幂、Leetcode的Go实现_李歘歘的博客

342. 4的幂、Leetcode的Go实现_李歘歘的博客

​位运算有什么奇技淫巧? - 知乎​

​剑指 Offer 65. 不用加减乘除做加法​