位运算

来源:互联网 发布:凯斯西储大学轴承数据 编辑:程序博客网 时间:2024/05/21 22:26

常用位运算:&   |   <<    >>(二进制)

1)  &。按位与    00101 & 11100 => 00100。即相同位的数字若都为1,则为1,若有一个不为1,则结果为0。

用途:二进制的取位操作。判断奇偶性。eg:  a & 1 为取a的二进制的末位。  末位为1,该数为奇数,否则为偶数。

2)  |。按位或    00101 | 11100 => 11101 。 即相同位若有一个1,结果为1.

用途:二进制的特定位无条件赋值,改变奇偶性。 eg:  a | 1 为将a的二进制末位强行变成1,如果需要把二进制最末位变成0,对这个 a | 1 之后再减一就可以了,其实际意义就是把这个数强行变成最接近的偶数。

3)  ^ . 异或,相同为1,不同为0.

用途:交换两个变量的值。eg:a=a^b;b=b^a;a=a^b;这样就交换了a,b的值,也就是说,同一变量与   另一变量和其异或值   异或 等于自身。

 注意:   a&b+a^b=a|b.

4)  << 。左移  a<<b,a的二进制左移b位(后面添b个0),a << b的值实际上就是a乘以2的b次方,因为在二进制数后添一个0就相当于该数乘以2。

用途 :a<<1 运算速度比 a * 2 快。

5)  >> 。 右移  a>>b ,a的二进制右移b位(去掉末b位),   a >> b 的值实际上是a除以2的b次方(取整)。

用途:二分法,堆的插入操作。

     a<<=b 即为 a = a << b

位运算    n皇后  

 

0 0
原创粉丝点击