原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/12/15/2820012.html
英文出自 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html
java程序语言针对整型提供了位运算和移位操作。下面讨论的操作符,比较少用。该章节的目的很明确,让你知道有这些操作符的存在。
一元的按位求补运算符“~”反转位;它可以用于任何整型,让每个0变为1,每个1变为0.例如,字节a包含8个位,如果位模式是"00000000",使用该操作符,会变成 "11111111"。
有符号左移操作符"<<
",向左移动位模式,有符号右移位操作">>
",向右移动位模式。位模式是左手边的操作数,移动的位置数是右手边的操作数。
无符号右移操作符">>>
"向最左边移动0,而对于有符号左移操作符 ">>",最左边的位依靠对应的符号扩展(译者注:对于正数,最左边的那位是1,有符号左移后最左边那位还是1,而无符号左移最右边那位就是0了)。
按位 &
操作符执行一个按位与操作
按位^操作符执行一个按位异或操作
按位|操作执行一个按位与操作
下面的程序,BitDemo,使用按位与操作输出number"2"到标准输出。
class BitDemo { public static void main(String[] args) { int bitmask = 0x000F; int val = 0x2222; // prints "2" System.out.println(val & bitmask); } }