位操作是程序设计中对位模式按位或二进制数的一元和二元操作。 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多。 在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算)
缺点:只能为整型和字符型数据
位运算主要是针对二进制进行的计算操作,其主要有:与 & 、非 !、或 | 、异或 ^ 、左移 > 和 右移 <
1.与 &
使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如:
1&1=1
1&0=0
0&1=0
0&0=0
---
001
---------------
001(结果)
结论1:两个数a和b(0<a<b)相与其结果范围是[0,a],包含0和a
应用场景:hashMap中让hashCode和map数组大小减一进行与操作,得到该key在数组中的位置角标值。
2.异或 ^
结论1:两个相同的数进行异或结果是0
应用场景:storm重arck机制,使用了该操作来判断任务是否完成。
其他:http://wenwen.m.sogou.com/mq/qudetail.jsp?qid=606323001&w=c%E8%AF%AD%E8%A8%80%E7%9A%84%E8%B4%9F%E5%80%BC%E7%9C%8B%E4%B8%8D%E6%87%82&g_ut=3
使用场景:基于位运算的权限设计
http://blog.****.net/ajian005/article/details/8490899
百度百科: http://baike.baidu.com/view/379209.htm