位运算讲解及实用小技巧

位是用二进制表示的,1与0,也就是有还是没有。

所以&|^其实就是数学中的取交集并集差集的问题。

所以可以用位来代替集合做这些什么什么集的运算。

 

&

名称:与

作用:取交集,把你有的和我有的拿出来。

举例:

0101

1001

0001

 

|

名称:或

作用:取并集,把你有的或我有的拿出来。

举例:

0101

1001

1101

 

^

名称:异或

作用:取差集,把你没有但是我有的或我没有但是你有的拿出来。

举例:

0101

1001

1100

 

~

名称:取反

作用:01互换,把没有变成有有变成没有。

举例:

0101

1010

 


 

位代替集合的小技巧:

 

取交集:  c=a&b

取并集:  c=a|b

取差集:  c=a^b

用b剔除a中的元素(ab相同位均为1,则设置为0,否则值为a相同位的值):  c=a&(~b)

a完全包含b(a | b)==a

 

a不完全包含b(a & b)!=0

 

a完全不包含b(a & b) == 0

 

posted on 2013-01-31 19:32  snet  阅读(234)  评论(0编辑  收藏  举报