Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
位运算符做用在全部的位上,而且按位运算。假设a = 60,和b = 13;它们的二进制格式表示将以下:
A = 0011 1100 http://www.iis7.com/b/yqlj/ 批量友情连接检测
B = 0000 1101
-----------------
A&b = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011
下面列出了位运算符的基本运算,假设整数变量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变量