在学数据结构与算法时,经常会看到利用位运算进行解题,那么都有哪些位运算呢?
位运算符是什么意思:
将数值,转为二进制后,按位操作
各个符号意思:
按位&:
对应位的值如果都为1才为1,有一个为0就为0
按位|:
对应位的值如果都是0才为0,有一个为1就为1
异或^:
二元:a^b
对应位的值不同为1,相同为0
一元:^a
按位取反:
1--->0
0--->1
位清空:&^
对于 a &^ b
对于b上的每个数值
如果为0,则取a对应位上的数值
如果为1,则结果位就取0
位移运算符:
<<:按位左移,将a转为二进制,向左移动b位
a << b
>>: 按位右移,将a 转为二进制,向右移动b位
a >> b