简介
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
位运算符作用在所有的位上,并且按位运算。
位运算符的计算都是在二进制格式下进行的,也就是说如果给出的数格式不是二进制格式需要先转成二进制格式。
位运算符
“&”(与)、”|”(或)、”^”(异或)、”~”(非)
举例
先说下二进制的格式,这里用最低的八位表示:00000000,从右向左,如果是1就代表2的多少次幂,从0次幂开始。
例如:
3 用二进制表示为 00000011,2的0次幂+2的1次幂
假设a = 3,b = 6;
测试代码
public class Test {
public static void main(String[] args) {
int a = 3; /* 3 = 0000 0011 */
int b = 6; /* 6 = 0000 0110 */
int c = 0;
c = a & b;
System.out.println("a & b = " + c );
c = a | b;
System.out.println("a | b = " + c );
c = a ^ b;
System.out.println("a ^ b = " + c );
c = ~a;
System.out.println("~a = " + c );
c = a << 1;
System.out.println("a << 1 = " + c );
c = a >> 1;
System.out.println("a >> 1 = " + c );
c = a >>> 1;
System.out.println("a >>> 1 = " + c );
}
}
运行结束
a & b = 2
a | b = 7
a ^ b = 5
~a = -4
a << 1 = 6
a >> 1 = 1
a >>> 1 = 1