Java按位运算符

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然后-

运算符
描述

&(按位与)
如果两个操作数中都存在二进制AND运算符,则会将一位复制到结果中。
(A&B)将给出12,即0000 1100
| (按位或)
如果任一操作数中存在二进制或运算符,则会对其进行复制。
(A | B)将得出61,即0011 1101
^(按位XOR)
如果在一个操作数中设置了该位,但不是在两个操作数中都设置了位,则二进制XOR运算符将复制该位。
(A ^ B)将得出49即0011 0001
〜(按位赞美)
二进制补码运算符是一元的,具有“翻转”位的作用。
(〜A)将给出2的补码形式的-61,即1100 0011,这是由于带符号的二进制数。
<<(左移)
二进制左移运算符。左操作数的值向左移动右操作数指定的位数。
<< 2将得到240,即1111 0000
>>(右移)
二进制右移运算符。左操作数的值向右移动右操作数指定的位数。
A >> 2将得到15等于1111
>>>(零填充右移)
右移零填充运算符。左操作数的值向右移动右操作数指定的位数,并且移位后的值用零填充。
A >>> 2将得到15,即0000 1111