位运算符
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
位运算符作用在所有的位上,并且按位运算。假设a = 60,b = 13;它们的二进制格式表示将如下:
A = 0011 1100 B = 0000 1101
A&B = 0000 1100 如果相对应位都是1,则结果为1,否则为0
A | B = 0011 1101 如果相对应位都是0,则结果为0,否则为1
A ^ B = 0011 0001 如果相对应位值相同,则结果为0,否则为1
~A= 1100 0011 按位取反运算符翻转操作数的每一位,即0变成1,1变成0
a<<2 =240 60*2*2=240(1111 0000) 按位左移运算符。左操作数按位左移右操作数指定的位数。
a>>2 =15 60/2/2=15(1111) 按位右移运算符。左操作数按位右移右操作数指定的位数
a>>>2 =15(0000 1111) 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充