The shift operator is also for the binary "bit", which mainly includes the left shift operator (<<), the right shift operator (>>>), and the signed right shift operator (>>).
1. Left shift operator
The left-shift operator, represented by "<<", is the object to the left of the operator, the number of digits to the right of the left operator, and the low 0. In fact, moving the n bit to the left is equivalent to multiplying by 2 of n times, such as the following example.
public class Data17
{
public static void Main (string[] args)
{
int a=2;
int b=2;
The result of System.out.println ("A shift is:" + (a<<b));
}
}
Run results
The result of a shift is: 8
Analyze the above program section:
First of all, in essence, 2 of the binary is 00000010, it moves to the left 2 bits, it becomes 00001000, that is 8. If you look at it from another angle, it moves 2 digits to the left, which is actually multiplying by 2 of the 2 times, and the result is 8.
2. Right shift operator
The right shift operator, represented by the symbol ">>>", is the specified number of digits to the right of the object to the left of the operator, and at the top of 0, in fact, the right n bit, which is equal to the n-th side of the 2.
public class Data18
{
public static void Main (string[] args)
{
int a=16;
int b=2;
The result of System.out.println ("A shift is:" + (a>>>b));
}
}
Run results
The result of a shift is: 4
Analysis of the above program section: In essence, 16 binary is 00010000, it moved to the right 2 bits, it becomes 00000100, that is 4. If you look at it from another angle, it moves 2 bits to the right, which is actually divided by 2 of the 2 times, and the result is 4.
3. Signed right-shift operator
The signed right shift operator is represented by the symbol ">>", which is the operand to the left of the operator, and the specified number of digits to the right of the operator. If a positive number, in the high position of 0, if the negative, then the high level of 1, first look at a simple example below.
public class Data19
{
public static void Main (string[] args)
{
int a=16;
int c=-16;
int b=2;
int d=2;
System.out.println ("A shift Result:" + (a>>b));
System.out.println ("C's shift Result:" + (c>>d));
}
}
Run results
Shift result of a: 4
Shift result of C:-4
Analyze the above program section:
The value of a is 16, converted to binary is 00010000, let it move to the right two digits 00000100 is 4.
The value of C is-16, converted to binary is 11101111, let it move to the right one into 11111011-4.