>>) uses "zero extension": regardless of whether it is positive or negative, 0s are inserted in the high bits. This operator is not available in C or C++."/> >>) uses "zero extension": regardless of whether it is positive or negative, 0s are inserted in the high bits. This operator is not available in C or C++.">

Home  >  Article  >  Java  >  What does >>> mean in java?

What does >>> mean in java?

青灯夜游
青灯夜游Original
2019-11-18 16:00:3114203browse

What does >>> mean in java?

What does mean in java?

is the shift operator in java, which means unsigned right shift.

The operand of the shift operator is also a binary "bit". They can be used alone to handle integer types (one of the main types).

"Signed" left shift operator (e2c431bc800a5e3e4f54b6c86fa5b9b0>) moves the operand on the left side of the operator to the right by the number of digits specified on the right side of the operator. The "signed" right shift operator uses "sign extension": if the value is positive, 0 is inserted in the high bit; if the value is negative, 1 is inserted in the high bit.

Java also adds an "unsigned" right shift operator (>>>), which uses "zero extension": regardless of whether it is positive or negative, Insert 0 into the high bit. This operator is not available in C or C.

If char, byte or short are shifted, they will be automatically converted into an int before the shift is performed. Only the 5 low bits on the right are used. This prevents us from moving an unrealistic number of digits within an int. If a long value is processed, the final result is also long. At this time, only the 6 low bits on the right side will be used to prevent the movement from exceeding the number of ready-made digits in the long value.

But you may also encounter a problem when performing "unsigned" right shift. If you perform a right shift operation on a byte or short value, you may not get the correct result (especially Java 1.0 and Java 1.1).

They will be automatically converted to int type and shifted right. But "zero extension" doesn't happen, so you get a result of -1 in those cases. You can use the following example to test your own implementation:

public class URShift {
public static void main(String[] args) {
int i = -1;
i >>>= 10;
System.out.println(i);
long l = -1;
l >>>= 10;
System.out.println(l);
short s = -1;
s >>>= 10;
System.out.println(s);
byte b = -1;
b >>>= 10;
System.out.println(b);
}
}

The above is the detailed content of What does >>> mean in java?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn