Java 位运算符
java programming java8java technologies object oriented programming
Java 定义了几个位运算符,可应用于整数类型:long、int、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
下表列出了位运算符 −
假设整数变量 A 为 60,变量 B 为 13,则 −
运算符 | 描述 | 示例 |
---|---|---|
& (按位与) | 如果两个操作数中都存在一位,则二进制与运算符会将一位复制到结果中。 | (A & B) 将得到 12,即 0000 1100 |
| (按位或) | 如果二进制或运算符在任一操作数中存在该位,则复制该位。 | (A | B)将给出 61,即 0011 1101 |
^(按位异或) | 如果二进制异或运算符在一个操作数中设置了该位,但不是同时在两个操作数中设置了该位,则复制该位。 | (A ^ B)将给出 49,即 0011 0001 |
~ (按位补码) | 二进制一补码运算符是一元的,具有"翻转"位的效果。 | (~A ) 将给出 -61,由于它是有符号二进制数,因此以 2 的补码形式表示为 1100 0011。 |
<< (左移) | 二进制左移运算符。左边的操作数的值向左移动右操作数指定的位数。 | A << 2 将得到 240,即 1111 0000 |
>> (右移) | 二进制右移运算符。左边的操作数的值向右移动右操作数指定的位数。 | A >> 2 将得到 15,即 1111 |
>>> (零填充右移) | 右移零填充运算符。左侧操作数的值按右侧操作数指定的位数向右移动,并用零填充移位后的值。 | >>>2 将得出 15,即 0000 1111 |