1.基础的位运算
在位运算中,比较重要的就是1.按位与(&),2.按位或(|),3.按位异或(^)。
&:有0则为0。
|:有1则为1。
^:(1)相同为0,不同为1。(2)无进位相加。
其中异或的两种理解方法都要记忆,后来会有用。
2.给一个数n,确定它的二进制表示中第x位是0还是1
n=(n>>x)&1
方法很简单,将这个数n向右移x位,再&1就行了。结果是0,答案就是0,结果是1,答案就是1。
举个例子:
n: ......01010010。判断第5位是0还是1。那么先将第5位向右移到第1位,就会得到.......0101,然后&00000...0001,结果就是1。所以第5位是1。
3.将一个数n的二进制表示的第x位修改成1
n=n|(1<<x)
和标题2的方法有些类似,只不过是将1向左移x位,然后| n就可以了。
举例:
n: .....0101001,要将第三位改成1就需要| ...100,而...100这个数是1向左移位的结果。
4.将一个数的二进制表示的第x位修改成0.
n=n&(~(1<<x))。
这个表达式就可以解决这个问题。
先将1左移x位,然后按位取反,再与n。我就不过多解释了,在草

最低0.47元/天 解锁文章
1013

被折叠的 条评论
为什么被折叠?



