一文带你了解java中的位运算符

105 阅读1分钟

hi!本今天介绍java常见位运算符的用法


位运算符,全称”移位运算符“,是直接对整数的二进制进行计算的运算符。位运算符的最大优点就是运算效率高,缺点是不够只管

按位与(&)

如果对应位都是1,则结果为1,否则为0。

例如:

image.png

按位或(|)

如果相应位都是0,则结果为0。否则为1

例如:

image.png

异或(^)

如果相对于位值相同则,结果为0,否则为1。

例如:

image.png

按位取反(~)

翻转操作数的每一位,即0变成1,1变成0

例如: image.png

按位左移(<<)

把整数的二进制位向左移指定位数。在一定范围内,每左移一位,相当于乘以2。

例如:

0b1<<1  //即把 0000 0001 左移一位,变成0000 0010 所以结果是1*2=2
0b1<<2  //即把 0000 0001 左移两位,变成0000 0100 所以结果是1*2*2=4

按位右移(>>)

和按位右移和按位左移同理。把整数的二进制位向右移动指定位数,最高位补哦。一定范围内,每右移一位,相当于除以2。

例如:

0b100>>2 //即把0000 0100右移两位,变成0000 0001 所以结果是4/2/2=1

按位操作比Math.pow(a,b)操作要更有效率