&与
规则: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
^异或
规则:0^0=0、0^1=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
用法: