Java位运算符

2022-3-3 diaba 基础

Java位运算符有:

左移( << )
右移( >> )
无符号右移( >>> )
位与( & )
位或( | )
位非( ~ )
位异或( ^ )

除了位非( ~ )是一元操作符外,其它的都是二元操作符

交换两个不等的数方法:

//交换两个不相等的数,可以使用「位异或」

a=5;
b=6;
通过如下代码:
a=a^b;
b=a^b;
a=a^b;
变为:
a==6;
b==5;

【注意】如果两个数相等,经过如下代码会得到0


由位运算操作符衍生而来的有:

&= 按位与赋值
|=  按位或赋值
^= 按位非赋值
>>= 右移赋值
>>>= 无符号右移赋值
<<= 赋值左移

和 += 一个概念而已。

应用:

1.一个数乘以2的n次幂
m*2^n ——> m<<n
2.判断数是否为奇数    
 n&1 == 1?”奇数”:”偶数”
3.取绝对值
(a^(a>>31))-(a>>31)
4.不使用临时变量,交换两个数(上面举例了)


发表评论:

Powered by emlog 京ICP备15045175号-1 Copyright © 2022