关于java的位运算

来源:互联网 发布:淘宝新手卖家无流量 编辑:程序博客网 时间:2024/05/03 20:26

位移动:<<、>>、>>>:

位运算:与(&)、或(|)、非(!)异或(^)

1、<<左移1位表示乘2:

例如5<<2

a、把5转换成二进制0000 0000 0000 0000 0000 0000 0000 0101

b、把左侧高位的两个0移除,在右侧补0得到结果0000 0000 0000 0000 0000 0000 0001 0100

c、转换为十进制20

同理:5>>2右移1位表示除2。

总结:左移丢弃最高位,0补最低位;右移符号位不变,左边补上符号位(正为0,负为1)

2、     &:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000  

| :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110 

~:0变1,1变0

^:两边的位不同时,结果为1,否则为0.如1100^1010=0110