当前位置: 首页 > 编程笔记 >

Java运算符>、>>、>>>三者的区别

刁越
2023-03-14
本文向大家介绍Java运算符>、>>、>>>三者的区别,包括了Java运算符>、>>、>>>三者的区别的使用技巧和注意事项,需要的朋友参考一下

>表示大于,如:if(a>b)...结果是boolean类型

>>表示带符号右移,如:int i=15; i>>2的结果是3,移出的部分将被抛弃。
转为二进制的形式可能更好理解,0000 1111(15)右移2位的结果是0000 0011(3),0001 1010(18)右移3位的结果是0000 0011(3)。

>>>无符号右移
按二进制形式把所有的数字向右移动对应巍峨位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。
其他结构和>>相似。

测试代码如下:

public class Test{  
  public static void main(String[] args){  
    System.out.println("1、以下测试>:");  
    int a = 1, b = 2;  
    System.out.println(a > b);  
    System.out.println("\n2、以下测试>>:");  
    System.out.println("15 >> 2 = " + (15 >> 2));  
    System.out.println("\n3、以下测试>>>:");  
    for (int i = 0; i < 10; i++){  
      for (int j = 0; j < 500; j = j + 5){  
        System.out.println(j / (int) (Math.pow(2, i)));  
        System.out.println(j >>> i);  
      }  
    }  
  } 
}

JAVA中其他位运算符:

~ 按位非(NOT)(一元运算)
& 按位与(AND)
| 按位或(OR)
^ 按位异或(XOR)
>> 右移
>>> 右移,左边空出的位以0填充
<< 左移
&= 按位与赋值
|= 按位或赋值
^= 按位异或赋值
>>= 右移赋值
>>>= 右移赋值,左边空出的位以0填充
<<= 左移赋值

 类似资料:
  • 问题内容: 是否可以更改此: …对三元运算符? 问题答案: 好吧,中的行为就像这样…… …另一种看待它的方式… 你的问题有点含糊,我们必须在这里假设。 如果(且仅当)声明了一个返回值(,等。)-现在看来似乎没有做到这一点通过你的代码-那么你可以做到这一点… 如果callFunction(…)不返回值,那么你将无法使用三元运算符!就那么简单。你将使用不需要的东西。 请发布更多代码以清除所有问题 尽管

  • 问题内容: 有人可以解释为什么这样的代码吗? 产生以下编译器错误: 不兼容的条件操作数类型ArrayList和HashSet 由于我不明白的原因,以下内容解决了该问题 我正在使用Java 1.4。 问题答案: 这是1.4 中的 错误 ,并已根据bugreport 5080917 进行了修复。 评估 这是一个错误。 xxxxx @ xxxxx 2004-07-30

  • 1 and 2 or 3 这个与 三目运算符 有什么区别

  • 有没有办法用三元运算来实现这个。我对三进制很陌生,也许你可以指导我。 这个好像不行。

  • 条件(三元)运算符是 JavaScript 仅有的使用三个操作数的运算符。一个条件后面会跟一个问号(?),如果条件为 truthy ,则问号后面的表达式A将会执行;表达式A后面跟着一个冒号(:),如果条件为 falsy ,则冒号后面的表达式B将会执行。本运算符经常作为 if 语句的简捷形式来使用。(MDN) 三元运算符,也称条件运算符、三目运算符。 三元运算符可以代替简单的 if 语句。 1. 语

  • 问题内容: 我知道数组运算符具有优先权。然后是二元算术运算符*,/,%。然后+和-优先级较低。 但是我很困惑在这个示例中哪个人会首先解决Java。并且如果我们有2个具有相同优先级的运算符,那么Java中将首先使用哪个运算符? 谢谢。 如果有人可以为我解决这个问题并向我部分解释。因为这总是使我困惑于考试。 问题答案: 如果运算符具有相同的优先级,则从左到右对其进行求值。 从教程: 当相同优先级的运算