In Java, such operators exist for binary operations, they are &, |, ^, ~, >>, <<, >>> Several bitwise operators, regardless of the initial value is based on what the binary, will be converted into binary bits
Operation. The following is a brief explanation of these operators.
&:
The function is to perform a bitwise AND operation on both sides of the operator in binary representations, and this operation is in the same bit (bit) as the number. The rule of operation is: only if two operands are 1 o'clock, the output is 1, no
is 0, the example is as follows:
12 binary is 1100
5 binary is 0101
Then the binary of the & 5 is 0100, then the complete arithmetic is 5 = 4;
|
The function is to perform a bitwise ' or ' operation on both sides of the operator in binary representations, and this operation is in the same bit (bit) of the number. The rule of action is: only if two operands are 0 o'clock, the result of the output is 0,
otherwise 1, the example is as follows:
12 Binary is 1100
5 binary is 0101
Then 12 | The binary of 5 is 1101, then the full expression is & 5 = 13;
^ :
The function is to perform a bitwise ' XOR ' operation on both sides of the operator in binary representation, and this operation is in the same bit (bit) of the number. The rules for XOR operations are: only if the two operands are not the same, the corresponding
lose The result is only 1, otherwise 0, an example is as follows:
12 Binary is 1100
5 binary is 0101
Then 12 | The binary of 5 is 1001, then the full expression is & 5 = 9;
~ :
the function of the ' inverse ' operator is to reverse the numbers: all 0 are 1,1 is 0, and the example is as follows:
12 Binary is 1100
The counter operation is 10000000 00000000 00000000 00001101
The complete expression is ~12 = 13
<< :
The left shift is to move all the digits of a number to the left by several bits , as shown in the following example:
12 Binary is 1100
Then the binary of the << 1 is 11000, then the complete arithmetic is 1 = 24;
>> :
The right shift is to move all the digits of a number to the right by several bits , as shown in the following example:
12 Binary is 1100
then the binary of >> 1 is 0110, then the complete arithmetic is 1 =6;
>>> :
unsigned Right shift one , insufficient complement 0, examples are as follows:
12 Binary is 1100
then the binary of >> >1 is 0110, then the complete arithmetic is 1 = 6;
Off-topic: bit operation is a binary-based operation, involving the knowledge including the original code, anti-code, complement, here to do a small explanation,
For the original code, is the current binary representation of the number, such as 1 of the original code is 1000 0001;
For the inverse code, the inverse of the positive number is itself, negative number of the inverse code is the binary reserved sign bit, the remaining bit counter, for example-1 of the inverse code is 1111 1110;
For the complement, positive number of anti-code, complement, the original code is the same, negative complement is in its anti-code based on +1, for example-1 of the complement is 1111 1111;
In the JDK's original code, there are many initial values are computed by bit operations, bit operations have many characteristics, can play a role in the linear growth of data, and for some operations, bit operation is the most direct and easiest method.
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Java bit operators in-depth understanding