一、位运算符
位运算符进行的是整数与整数之间的运算
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)