/*
移位运算符:
<<(左移)
规律:一个操作数进行左移运算的时候,结果就是等于操作数乘以2的n次方,n就是左移 的位数.
3<<1 = 3 *2(1) = 6;
3<<2 = 3*2(2) = 12
3<<3 = 3*2(3) = 24
>>(右移)
规律:一个操作数在做右移运算的时候,实际上就是等于该操作数除以2的n次方,n就是右移的位数。
3>>1 = 3 / 2(1) = 1
3>>2 = 3 / 2(2) = 0 。。
>>>(无符号右移) :
无符号右移与右移的区别:进行右移运算的时候,如果操作数是一个正数,那么左边的空缺位使用0补,
如果操作数是一个负数,那么左边的空缺位使用1补。而使用无符号右移的时候,不管是正数还是负数都
统一使用0补。
笔试题目:使用最高的效率算出2乘以8的结果。
2<<3 = 2*2(3) = 16;
/*
三元运算符(三目运算符)
格式;
布尔表达式?值1:值2 ;
三元运算符要注意的细节:
使用三元运算符的时候,一定要使用该表达式返回的结果,或者是定义一个变量接收该表达式返回的结果。
*/
移位运算符:
<<(左移)
规律:一个操作数进行左移运算的时候,结果就是等于操作数乘以2的n次方,n就是左移 的位数.
3<<1 = 3 *2(1) = 6;
3<<2 = 3*2(2) = 12
3<<3 = 3*2(3) = 24
>>(右移)
规律:一个操作数在做右移运算的时候,实际上就是等于该操作数除以2的n次方,n就是右移的位数。
3>>1 = 3 / 2(1) = 1
3>>2 = 3 / 2(2) = 0 。。
>>>(无符号右移) :
无符号右移与右移的区别:进行右移运算的时候,如果操作数是一个正数,那么左边的空缺位使用0补,
如果操作数是一个负数,那么左边的空缺位使用1补。而使用无符号右移的时候,不管是正数还是负数都
统一使用0补。
笔试题目:使用最高的效率算出2乘以8的结果。
2<<3 = 2*2(3) = 16;
*/
class Demo11 {
public static void main(String[] args){
/*
左移
System.out.println(3<<1); // 6
System.out.println(3<<2); // 12
System.out.println(3<<3); // 24
右移:
*/
System.out.println(3>>>1); // 1
System.out.println(3>>>2); //0
}
}
/*
三元运算符(三目运算符)
格式;
布尔表达式?值1:值2 ;
三元运算符要注意的细节:
使用三元运算符的时候,一定要使用该表达式返回的结果,或者是定义一个变量接收该表达式返回的结果。
*/
class Demo12
{
public static void main(String[] args) {
/*
int age = 26;
String result = age>=18?"成年人":"未成年人";
System.out.println(result);
*/
int a = 1;
int b = 2;
int c = 3;
int result = a*b+c/2+2*(a+b)/c;
System.out.println("result="+result);
/*
a*b+c/2+2*(a+b)/c;
a*b+c/2+2*3/c
2+c/2+2*3/c
2+1+2*3/c
2+1+2 = 5
*/
}
}