不会位运算?常见位运算总结!~~~

 这里是Themberfue

本章介绍的主要是一些常见的位运算技巧。 

基础位运算 

· << 左移运算符 => 向某个数字的二进制形式左移 n 位

· >> 右移运算符 => 向某个数字的二进制形式右移 n 位

· ~ 取反运算符,0变1,1变0

· & 与运算符,有0就是0

· | 或运算符,有1就是1

· ^ 异或运算符,相同为0,不同为1,也可以理解为无进位相加

 给一个数 n ,确定它的二进制表示中的 x 位是0还是1

· 将 n 右移 x 位,然后与上1,若结果为0,则为0,结果为1,则为1。

· (n >> x) & 1

· 如图所示

 

将一个数 n 的二进制表示的 x 位修改为1

· 将 1 左移 x 位,然后或上 n,即可

· n | (1 << x)

· 如图所示

 

 将一个数 n 的二进制表示的 x 位修改为0

· 将 1 左移 x 位,取反后与上 n,即可

· n & (~(1 << x))

 

提取一个数 n 二进制表示最右侧的1

 n & -n

 

 干掉一个数 n 二进制表示最右侧的1

n & (n - 1)

 

 异或(^)运算规律

· a ^ 0 = a

· a ^ a = 0

· a ^ b ^ c = a ^ (b ^ c)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值