1、>、>>、>>>有什么区别
了解java运算符看这里:java种的运算符都有哪些
了解java运算符优先级看这里:java运算符的优先级是怎样的
“>”属于关系运算符,而“>>”、”>>>”则按位运算符,看一下它们各自的含义:
- 运算符>
关系运算符,表示大于。
如:if(a>b)…结果是boolean类型。
- 运算符>>
按位运算符,表示右移。<<表示左移。
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)。
了解二进制运算看这里:二进制是怎样做位运算的
- 运算符>>>
按位运算符,表示无符号右移。
与>>类似,但移动时忽略符号位,空位都以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
时间: 2024-12-28 16:19:05