Recommendation: "PHP Video Tutorial"
Bit Operator
The bit operator refers to the binary bit from the low bit Perform operations after aligning to the high bit.
Symbol |
Function |
Example |
Personal understanding |
& |
bitwise AND |
$m & $n |
All 1’s are 1, otherwise 0 |
| |
Bitwise OR |
$m | $n |
All 0s are 0, and 1 is 1 |
^ |
Bitwise XOR |
$m | $n |
is different from 1 , the same as 0 |
~ |
bitwise inversion |
~$m |
|
##<< | Shift left | $m << $n |
|
>> | Shift right |
$m >> $n
|
|
##&operator
<?php
$m = 1;
$n = 2;
$mn = $m & $n;
echo $mn;
Copy after login
The operation result is 0
Explanation: Convert 1 and 2 into binary respectively as
00000001
00000010
In the process of bitwise AND, all 1s are 1, The comparison result is 00000000, so the output is 0
|Operator
<?php
$m = 1;
$n = 2;
$mn = $m | $n;
echo $mn;
Copy after login
The operation result is 3. Similarly, it is converted into the binary number
00000001# as above
##00000010
In the process of bitwise OR, if 1 is 1 and all 0 is 0, the result is 00000011, so the output is 3
^ operator
<?php
$m = 1;
$n = 2;
$mn = $m ^ $n;
echo $mn;
Copy after login
The running result is 3. Similarly, it is converted into the above binary number00000001
00000010
In the process of bitwise OR , the difference is 1, the same is 0, so the result is 00000011, and 3 is output.
~Operator
<?php
$m = 2;
$m1 = ~$m;
echo $m1;
Copy after login
The operation result is -3, which is thought-provoking. Note: In computers, negative numbers are expressed in the complement form of their positive values.
1: The 32-bit original code of 2 is 0000 0000 0000 0000 0000 0000 0000 0010
2: The bitwise inversion is 1111 1111 1111 1111 1111 1111 1111 1101
Since the first number is 1 and the sign bit is 1, it is a negative number. Therefore, the complement form of its positive value is expressed as: (the sign bit remains unchanged, bitwise inversion, and 1 is added at the end)
1000 0000 0000 0000 0000 0000 0000 0011
So the output is -3
<<?php
$m = 3;
$m1=$m << 1;
echo $m1;
Copy after login
The result of the operation is 6
The essence of the left shift operation is to shift the binary value of the corresponding data to the left bit by bit, and fill in the vacated position with 0. The highest bit overflows and is discarded. The 32-bit original code of
3 is, 0000 0000 0000 0000 0000 0000 0000 0011
Shift one position to the left: 0000 0000 0000 0000 0000 0000 0000 0110
, so it is 6
According to the description in the manual, we can see that bitwise operations can be seen by shifting one bit to the left, which is a multiplication by 2 operation. Because the operation speed of displacement operation is much higher than that of multiplication. Therefore, when processing data multiplication operations, using displacement operations can achieve faster speeds.
Tip: Convert all multiplication operations of 2 into displacement operations to improve the running efficiency of the program.
>>Operator
Shift one position to the right, similar to the << operator, except that this is a right shift, which is not done here. Too much explanation.
For more programming-related knowledge, please visit:
Programming Teaching
! !
The above is the detailed content of Detailed explanation of PHP bit operators. For more information, please follow other related articles on the PHP Chinese website!