随笔记录
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.不使用临时变量,交换两个数(上面举例了)




发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容