^:异或
两边相同结果是false
两边不同结果是true
&和&&的特点:
&:无论左边是true是false,右边都运算
&&:当左边为false时,右边不运算。
|:两边都参与运算。
||:当左边为true,右边不运算。
3<<2 = 12 -> 3*2^2
6>>2 = 1 -> 6/2^2
6>>1 = 3 -> 6/2^1
>>:最高位补什么由原有数据的最高位值而定
>>>:无论最高位是什么,右移后最高位都用0补
一个数异或同一个数两次,结果还是那个数。
练习:
1、最有效的效率算出2乘以8等于几?
2<<3
2、n=3,m=8,不用第三方变量,交换值
n = n ^ m
m = n ^ m
n = n ^ m
0000-0000 0000-0000 0000-0000 0011-1100 = 60;
60&15 = 12
0000-0000 0000-0000 0000-0000 0011-1100
0000-0000 0000-0000 0000-0000 0000-1111
----------------------------------------
0000-0000 0000-0000 0000-0000 0000-1100 = 12
temp = 60>>4
temp & 15 = 3
0000-0000 0000-0000 0000-0000 0000-0011
0000-0000 0000-0000 0000-0000 0000-1111
----------------------------------------
0000-0000 0000-0000 0000-0000 0000-0011 = 3
(char)(12-10+'A') = C
三元运算符
选择结构
格式:
switch(表达式)(byte short int char)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
......
default:
执行语句;
break;
}
int x = 3
switch(x)
{
default:
System.out.println("d");
case 4:
System.out.println("a");
case 5:
System.out.println("b");
break;
case 2:
System.out.println("c");
break;
}
结果为d
a
b
如果判断的具体数值不多,而是符合byte short int char 这四种类型
建议使用swtich语句
其他情况:对区间判断,对结果为boolean类型判断,使用if
两边相同结果是false
两边不同结果是true
&和&&的特点:
&:无论左边是true是false,右边都运算
&&:当左边为false时,右边不运算。
|:两边都参与运算。
||:当左边为true,右边不运算。
3<<2 = 12 -> 3*2^2
6>>2 = 1 -> 6/2^2
6>>1 = 3 -> 6/2^1
>>:最高位补什么由原有数据的最高位值而定
>>>:无论最高位是什么,右移后最高位都用0补
一个数异或同一个数两次,结果还是那个数。
练习:
1、最有效的效率算出2乘以8等于几?
2<<3
2、n=3,m=8,不用第三方变量,交换值
n = n ^ m
m = n ^ m
n = n ^ m
0000-0000 0000-0000 0000-0000 0011-1100 = 60;
60&15 = 12
0000-0000 0000-0000 0000-0000 0011-1100
0000-0000 0000-0000 0000-0000 0000-1111
----------------------------------------
0000-0000 0000-0000 0000-0000 0000-1100 = 12
temp = 60>>4
temp & 15 = 3
0000-0000 0000-0000 0000-0000 0000-0011
0000-0000 0000-0000 0000-0000 0000-1111
----------------------------------------
0000-0000 0000-0000 0000-0000 0000-0011 = 3
(char)(12-10+'A') = C
三元运算符
选择结构
格式:
switch(表达式)(byte short int char)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
......
default:
执行语句;
break;
}
int x = 3
switch(x)
{
default:
System.out.println("d");
case 4:
System.out.println("a");
case 5:
System.out.println("b");
break;
case 2:
System.out.println("c");
break;
}
结果为d
a
b
如果判断的具体数值不多,而是符合byte short int char 这四种类型
建议使用swtich语句
其他情况:对区间判断,对结果为boolean类型判断,使用if