Java千百问_03基础语法(013)_>、>>、>>>有什么区别

点击进入_更多_Java千百问

1、>、>>、>>>有什么区别

了解java运算符看这里:java种的运算符都有哪些
了解java运算符优先级看这里:java运算符的优先级是怎样的
“>”属于关系运算符,而“>>”、”>>>”则按位运算符,看一下它们各自的含义:

  1. 运算符>
    关系运算符,表示大于。
    如:if(a>b)…结果是boolean类型。

  2. 运算符>>
    按位运算符,表示右移。<<表示左移。
    j<< i。相当于num除以2的n次幂,j/(int) (Math.pow(2, i))。
    如:int i=15; i>>2的结果是3,移出的部分将被抛弃。
    转为二进制的形式可能更好理解,0 0000 1111(15)右移2位的结果是0 0000 0011(3)。
    了解二进制运算看这里:二进制是怎样做位运算的

  3. 运算符>>>
    按位运算符,表示无符号右移。
    与>>类似,但移动时忽略符号位,空位都以0补齐。
    无符号右移运算符>>>只是对32位和64位的值有意义(以及负值),其余情况与>>一致。

实例:

System.out.println("1、以下测试>:");
int a = 15, b = 2, c = -15;
System.out.println(a > b);
System.out.println("\n2、以下测试>>:");
System.out.println(a + " / (int) (Math.pow(2, " + b + "))) = "
               + (a / (int) (Math.pow(2, b))));
System.out.println(a + " >> " + b + " = " + (a >> b));
System.out.println(c + " >> " + b + " = " + (c >> b));
System.out.println("\n3、以下测试>>>:");
System.out.println(a + " >>> " + b + " = " + (a >>> b));
System.out.println(c + " >>> " + b + " = " + (c >>> b));

执行结果如下:

1、以下测试>:
true
2、以下测试>>:
15 / (int) (Math.pow(2, 2))) = 3
15 >> 2 = 3
-15 >> 2 = -4
3、以下测试>>>:
15 >>> 2 = 3
-15 >>> 2 = 1073741820

你可能感兴趣的:(java运算符,大于,按位运算符,右移无符号右移)