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

相关文章