Java提供的位运算符有:左移( << )、右移( >> )、无符号右移( >>> )、位与( & )、位或( | )、位非( ~ )、位异或( ^ )。除了位非( ~ )是一元操作符外,其它的都是二元操作符。
将5左移2位的示例代码:
package com.xcy;
public class Test {
public static void main(String[] args) {
System.out.println(5 << 2);
}
}
运行结果是20。左移的过程是将数字的二进制表示向左移动指定位数,低位补0。
右移操作与左移相反,是将数字的二进制表示向右移动指定位数,高位补0。
无符号右移在移动过程中,无论数字是正数还是负数,高位都补0。
位与操作的示例代码:
package com.xcy;
public class Test {
public static void main(String[] args) {
System.out.println(5 & 3);
}
}
位与操作:两个操作数的对应位都为1时,结果位才为1。
位或操作的示例代码:
package com.xcy;
public class Test {
public static void main(String[] args) {
System.out.println(5 | 3);
}
}
位或操作:两个操作数的对应位中只要有一个为1,结果位就为1。
位异或操作的示例代码:
package com.xcy;
public class Test {
public static void main(String[] args) {
System.out.println(5 ^ 3);
}
}