标签:
位运算符就是把数值的二进制里面的位上面的0和1来比较或运算。0为false,1为true。
&(与) |(或) ~(非) ^(异或) <<(向左位移) >>(向右位移) >>>(无条件向右位移)
&(与) 两边位数都为1(true)则给1(true),不用则给0(false) 例如:56&98
56 0111000 & 98 1100010
结果 0100000
|(或) 两边有一边为1(true)就给1(true),否则给0(false) 例如56|98
56 0111000 | 98 1100010
结果 1111010
~是取反的意思,在二进制里每一位都取反值:
例如98的二进制为:
00000000000000000000000001100010
每个位上取反值:
11111111111111111111111110011101
System.out.println(~98);
结果为:-99
^异或就是不等于的意思,判断两个数值在位上不相同则给1,相同给0.
例如:98^56
98 1100010
^
56 0111000
结果1011010
<<(向左位移)数值的二进制高位删除,低位补零.结果和乘法相似。 例如:98<<4
00000000000000000000000001100010
高位删除四个 地位添加4个零
00000000000000000000011000100000
(>>)(向右位移)高位如果是1 就补1 高位如果是0 就补0低位删除。
例如:98>>4
00000000000000000000000001100010
因为高位是0 所以高位加的就是0
00000000000000000000000000000110
例如:-98>>4
11111111111111111111111110011110
因为高位是1 所以高位加的就是1
11111111111111111111111111111001
(>>>)(无条件向右位移)不管高位上是0还是1,高位只加0低位删除。
-98>>>4
11111111111111111111111110011110
高位上只加零
00001111111111111111111111111001
1.用于加密
2.用于不可解密的加密
3.减少储存空间等
2.运算符的优先级 ()
! ++ --
<< >> >>>
< <= >= >
== !=
^
|
&&
||
+= -= *= /= %= =
优先级排序从上到下。
1.三元运算符:
条件?值:值
2.if else 语句
例如1
if(条件){
结果为true,运行
}else
{
结果为false,运行
}
例如2
if(条件){
结果为ture.运行
}else if(条件){
结果为ture.运行
}else if(条件){
结果为ture.运行
}else if(条件){
结果为ture.运行
}
附加知识点:在控制台输入数值给到指定的变量。
还可以这样写:
Import java.util.Scanner; //省略 Scanner input=new Scanner(System.in); //省略 Int shu=input.nextInt();
标签: