1.’&’符号,x&y,会将两个十进制数在二进制下进行与运算,然后返回其十进制下的值。
例如3(11)&2(10)=2(10)。

2.’|’符号,x|y,会将两个十进制数在二进制下进行或运算,然后返回其十进制下的值。
例如3(11)|2(10)=3(11)。

3.’^’符号,x^y,会将两个十进制数在二进制下进行异或运算,然后返回其十进制下的值。
例如3(11)^2(10)=1(01)。

4.’<<’符号,左移操作,x<<2,将x在二进制下的每一位向左移动两位,最右边用0填充,x<<2相当于让x乘以4。 相应的,’>>’是右移操作,x>>1相当于给x/2,去掉x二进制下的最有一位。

 

1.判断一个数字x二进制下第i位是不是等于1。

方法:if(((1<<(i1))&x)>0)if(((1<<(i−1))&x)>0)

将1左移i-1位,相当于制造了一个只有第i位上是1,其他位上都是0的二进制数。然后与x做与运算,
如果结果>0,说明x第i位上是1,反之则是0。

2.将一个数字x二进制下第i位更改成1。

方法:x=x|(1<<(i1))x=x|(1<<(i−1))

证明方法与1类似,此处不再重复证明。

3.把一个数字二进制下最靠右的第一个1去掉。

方法:x=x&(x1)

年轻也需要有所作为( ・´ω`・ )