Most languages provide bitwise operators. Bitwise operators are widely used in languages such as c and c, but there are not many application examples in scripting languages such as JS and AS. Sometimes, it is appropriate You'll get good results using bitwise operators.
The following is a brief talk about the use of bit operations in js based on my own knowledge (it also applies to other languages). If there are any errors, please correct me.
Bitwise operators treat the operand as a series of individual bits rather than a numeric value. So before that, I have to mention what a "bit" is:
Numbers or characters are stored in memory as a sequence of 0 and 1. Each 0 and 1 is called a bit, for example Decimal data 2 is stored in the computer as 0 0 0 0 0 0 1 0. When we change the bit value in the memory, the meaning of this value also changes. For example, move the front of 2 by one place. Now The storage unit becomes 0 0 0 0 0 1 0 0. This value represents decimal 4, which is the operating principle of the bitwise operator.
There are 6 bitwise operators As long as any bit is 0, the result of the & operation is 0, so you can use & to set the unnecessary bits of a variable to 0. For example, the binary representation of a variable is 0 1 0 0 1 0 0 1, I If you want to retain the lower 4 bits, just use & 0x0F to eliminate the upper 4 bits (remember: 0x0F is hexadecimal notation, and the corresponding binary is 0 0 0 0 1 1 1 1). This feature has a very important application. Will be mentioned later. 2 | The difference between operator 3 ^ operator 4 ~ Operator 5 Shift operator The shift operator moves the bits to the left or right according to the specified value. For example, 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 (decimal 16387) moving two places to the left will become ^The computing service has a magical feature
& bitwise AND
| bitwise or
^ bitwise XOR
~ negation
>> right shift
<
1 & operator
& is a binary operator. It combines the corresponding bits in the operands in a specific way. If the corresponding bits are all 1, then the result is 1. If any If the bit is 0, the result is 0
The result of 1 & 3 is 1
Let’s see how it works: The binary representation of
1 is 0 0 0 0 0 0 1
3’s binary representation Expressed as 0 0 0 0 0 1 1
The result obtained according to the rule of & is 0 0 0 0 0 0 0 1. The decimal representation is 1
| and & is that if any operand in the corresponding bit is 1, then the result is 1
1 | The result of 3 is 3
^ operator is similar to |, but one difference is that if both operating bits are 1, the result is 0
0 1 0 0 0 0 0 1
0 1 0 1 1 0 1 0
yields 0 0 0 1 1 0 1 1
~ is the bitwise negation, 1 changes to 0, 0 changes to 1
<< moves to the left and >> moves to the right. The excess bits will be lost, and The vacant bits are filled with 0
0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 ( Decimal 12)
moved two places to the right is
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 (decimal 4096)
The following introduces some specific applications
As mentioned earlier, 2 is moved forward by 1 place to become 4. This feature can be used to perform multiplication operations
2 << 1 =4
3 < ;< 1 = 6
4 << 1 = 8
Similarly>> you can do division operation
Any decimal can be rounded to an integer
For example, 3.14159 >> 0 = 3;
Such as the following code
<script><br>var n1 = 3; <br>var n2 = 4;<br>n1 ^= n2;<br>n2 ^= n1;<br>n1 ^= n2;<br></script>