位与 ( &) 算法
第一个操做数的的第n位于第二个操做数的第n位若是都是1,那么结果的第n为也为1,不然为0 spa
位或 ( | ) string
第一个操做数的的第n位于第二个操做数的第n位 只要有一个是1,那么结果的第n为也为1,不然为0class
位异或 ( ^ ) 经验
第一个操做数的的第n位于第二个操做数的第n位 相反,那么结果的第n为也为1,不然为0 数字
位非 ( ~ ) 位运算
被操做数的第n位为1,那么结果的第n位为0,反之。
几个经验述说:
若是算法中能用到位运算就用,没有比这个更快的:
一、当相同元素异或时,其运算结果为0, N ^ N = 0
二、当不一样元素异或时,其运算结果为非0, N ^ M != 0
三、任何数与数字0进行异或运算,其运算结果为该数自己 N ^ 0 = N