Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
位运算符作用在所有的位上,并且按位运算。假设a = 60,和b = 13;它们的二进制格式表示将如下:
A = 0011 1100
B = 0000 1101
A&b = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011 http://www.iis7.com/b/yqlj/ 批量友情链接检测
下面列出了位运算符的基本运算,假设整数变量A的值为60和变量B的值为13:
操作符 描述 例子
& 按位与操作符,当且仅当两个操作数的某一位都非0时候结果的该位才为1。 (A&B) 得到12,即0000 1100
| 按位或操作符,只要两个操作数的某一位有一个非0时候结果的该位就为1。 (A | B) 得到61,即 0011 1101
^ 按位异或操作符,两个操作数的某一位不相同时候结果的该位就为1。 (A ^ B)得到49,即 0011 0001
? 按位补运算符翻转操作数的每一位。 (?A) 得到-60,即1100 0011
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2 得到240,即 1111 0000
按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2 得到15即 1111
按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 A>>>2 得到15即0000 1111