这里发生了什么'>>>' java中的运算符?

时间:2013-11-21 17:21:04

标签: java operators

我这里有一个简单的程序。我知道它右移零填充运算符。左操作数值向右移动右操作数指定的位数,移位值用零填充。

package com.demo.operator;
public class Test123 {

      public static void main(String args[]) {
         int a = 60;      
         int c = 0;

         c = a >>> 2;     
         System.out.println("a >>> 2 = " + c );
      }
    } 

输出:a >>> 2 = 15

有谁能告诉我。

如何提供输出a >>> 2 = 15

3 个答案:

答案 0 :(得分:5)

>>>是无符号右移运算符。由于a为60且60为111100二进制,因此当您向右移两次时,得到1111即15。

答案 1 :(得分:0)

>>> is the logical (or unsigned) right shift operator.

允许x= 10000000 00000000 00000000 01100000

x>>> 4然后x = 00001000 00000000 00000000 00000110

你可以看到最右边的标志位也正在转移到右边但是>>不是这样。

如果x = 00000000 00000000 00000000 00111100,即x = 60

现在x>>>2所以x = 00000000 00000000 00000000 001111x = 15

答案 2 :(得分:-1)