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

What does >>> mean in java?

青灯夜游
Release: 2019-11-18 16:00:31
Original
14239 people have browsed it

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 (<<) can move the operand on the left side of the operator to the left by the number of digits specified on the right side of the operator (fill in the low bits) 0).

The "signed" right shift operator (>>) 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);
}
}
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template