6种常见位运算符+异或运算符的使用(加密、解密)

一、位运算符

位运算符进行的是整数与整数之间的运算

1、右移运算符:>>

(1)相当于对整数除以2

(2)举例:

int num = 2;
System.out.println(num >> 1);

2、左移运算符:<<

(1)相当于对整数乘2

(2)举例:

int num = 2;
System.out.println(num << 1);

3、与运算符:&

(1)位与位进行运算时,全1则1,否则为0

(2)举例:

int num = 2;
int num1 = 1;
System.out.println(num & 1);

(3)应用:

判断一个十进制整数的二进制整数某位上为0还是为1

举例:

int num = 1;
int num1 = 4;
if((num & num1)== 1){
    System.out.println(num + "的对应的二进制数的第2位为1");
}else{
    System.out.println(num + "的对应的二进制数的第2位为0");
}

 

(4)7FFFFFFF

这是一个十六进制数,表示的十进制数是2147483647,是Integer类型的最大值,与Integer.MAX_VALUE

4、或运算符:|

(1)位与位进行运算时,全0则0,否则为1

(2)举例:

int num = 2;
int num1 = 1;
System.out.println(num | 1);

5、非运算符:~

(1)对每一位都进行0-1反转

(2)举例:

int num = 0;
System.out.println(~ num);

6、异或运算符:^

(1)位与位进行运算时,不同为1,相同为0

(2)举例:

int num = 1;
int num1 = 2;
System.out.println(num ^ num1);

(3)特性:

X^Y^Y=X

(4)应用:

可用于用户密码的加密和解密

(5)典型题目:

只出现一次的数字. - 力扣(LeetCode)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值