位运算 - 知识点概括

位运算 - 例题加知识点概括

知识点概括

参考链接:https://leetcode.cn/leetbook/read/leetcode-cookbook/5c9u92/

1. 异或运算(^)

(1)x ^ 0 = x
(2)x ^ x = 0
(3)x ^ 111...111 = ~x
(4)x ^ (~x) = 111...111
起始(1)(2)和(3)(4)则是下面两条定律
(5)a ^ b = c  =>  a ^ c = b  =>  b ^ c = a (交换律) 
(6)a ^ b ^ c  = a ^ (b ^ c) = (a ^ b) ^ c (结合律)

2. 与运算(&)

最低有效位,英文全称是:the least significant bit,缩写为:LSB,是指一个二进制数字中的第0位(即最低位),具有权值为2^0,可以用它来检测数的奇偶性。

(1)x & 1 == 1 (判断是否为奇数)
(2)x & 1 == 0 (判断是否为偶数)
(3)x & 7 (取末尾三位)
(4)x & = x+1 (把二进制中连续的1变成0)
(5)x & =  x-1 (将最低位(LSB)的1清零,其余位置不变)
(6)x & -x (保留最低位(LSB)的1,其余位置置零)
(7)x & ~x = 0

3. 或运算(|)

(1)x | 1 (最后一位变成1)
(2)x |= x+1 (把右起的第一个0变成1)

4. 移位运算(<<、>>)

优先级问题(参考链接):

# 优先级由高到低
**
~ + - (正负号)
* / % //
+ -
<< >>
&
^
|
== > < => <= != in not in
is 
is not
not
or and
(1)x >> 1(去掉最后一位,即除以二)
(2)x << 1(在最后加个0,即乘以二)
(3)x << 1 | 1 (在最后加个1)
(4)x & (~0 << n) (x的最右边的n位清零)
(5)(x >> n) & 1 (获取x的第n位的值)
(6)x & (1 << (n-1)) (获取x的第n位的幂数)
(7)x | (1 << n) (将x的第n位置1)
(8)x & (~ (1 << n)) (将x的第n位置0)
(9)x & (~((1 << (n+1)) - 1)) (将x的第n位到第0位清零)
(10)x >> (n-1) & 1 (取x的右数第n位)
(11)x | ((1<<k)-1) (把x的末k位变成1)
(12)x ^ (1<<k-1) (把x的末k位取反)

5.小结

后学更新相关的例题,同时有关排序的例题也会跟着更新,刷题还挺舒服的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值