码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-06-04 09:22:51      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

点击进入_更多_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千百问_03基础语法(013)_>、>>、>>>有什么区别

标签:

原文地址:http://blog.csdn.net/ooppookid/article/details/51582809

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!