二进制运算

&与

规则:0&0=0、0&1=0、1&1=1
例如:6&3=2即0000 0110&0000 0011=0000 0010即2
用法:1.清零,即x&000;2.取一个数的指定位,如取x的低4位,即x&0000 1111

如何判断一个整数是不是奇数----最佳方式
http://blog.csdn.net/wenpengy/article/details/4772280

public static boolean isOdd(int i){
 return (i & 1) != 0 ;
}

|或

规则:0|0=0、0|1=1、1|1=1
例如:6|3=7,即0000 0110&0000 0011=0000 0111即7
用法:使一个数某些位置变1

^异或

规则:00=0、01=1、1^1=0值不同才是1
例如:6^3=7,即0000 0110^0000 0011=0000 0101即5
用法:1.翻转一个数的指定位,如翻转x的低4位,即x^0000 1111;
2.保留原值,如x^0000 0000

~取反

规则:0=1、1=0
用法:原码与反码(反码+1得到补码)

<<左移

规则:去掉高n位,低位补0
例如:3<<2=12,即0000 0011 << 2=0000 1100即12,相当于3*2^2=12
用法:

>>右移

规则:去掉低n位,高位补0
例如:3>>1=12,即0000 0011 >>1=0000 0001即1,相当于3/2=1
用法:

>>>无符号右移

规则:
例如:3>>>1=12,即0000 0011 >>>1=0000 0001即1,相当于3/2=1
用法:

原文地址:https://www.cnblogs.com/xiaobingzi/p/10661931.html