and Operations &
Example:
3&5
Solution: 3 of the twos complement is 11, 5 is 101, 3&5 is 011&101, first look at the hundred (actually not the hundred, so it is easy to understand) a 1 1, according to (1&1=1,1&0=0,0&0=0,0 &1=0) that the hundred should be 1, the same as the number 1&0=0, the number on the single digit 1&1=1, so the final result is 1. (It should have been a step later, because the value we get now is just the complement of the answer, but because the positive complement is itself, it's omitted.) However, the following example cannot omit this last step).
-1&-2
Solution:-1 of the complement is 11111111,-2 of the complement is 11111110, 11111111&11111110 obtained the result is: 11111110, this is the complement, and then the conversion of the original code 100000010 (negative conversion of the original code method is minus a negation), The last conversion to decimal is-2.
-2&6
Solution:-2 of the complement is 11111110, 6 of the complement is a, 11111110&110, that is, 11111110&00000110 (so that the purpose of writing is to allow beginners to better understand the bitwise operation), according to the above method to obtain the result is: 110, Conversion bit decimal is 6.
Tip: Use bitwise AND to change the last bit of any binary number to 0, which is x&0.
eg
A = 5b = 3print A & B
Results: 1
This is how to calculate, in fact, through a and B binary calculation.
# a B's binary # 0*2**3 + 1*2**2 + 0*2**1 + 1*2**0# start with operation a = 0101B = 0011
Results: 0001
And the operation is to compare the binary of A and b if the number of bits is 1 is counted as 1, if you do not want the same or both 0 is counted as 0. The binary of the answer is then converted to 10 binary.
or arithmetic |
Example:
4|7
Solution: The calculation of the bitwise AND and the bitwise and is very similar, but changed the logical operator, and the law is: 1|1=1, 1 |0=1, 0|0=0. 4|7 conversion bit binary is: 100|111=111. Binary 111 is the decimal 7.
Tip: Use a bitwise and can change the last digit of any binary number to 1, which is x|1.
eg
A = 5b = 3print A | B
Result: Print 7
A = 0101b = 0011
A | b result is: 0111
Or the operation is exactly the opposite of the operation, if the number of bits is not 0 is counted as 1, otherwise the count is 0.
XOR or operation
Methods: Add to the bits, especially to note that no rounding is needed.
Example:
2^5
Solution: 10^101=111, the binary 111 gets the decimal result is 7.
1^1
Solution: 1+1=0. (originally binary 1+1=10, but cannot carry, so the result is 0)
-3^4
Solution:-3 of the complement is 11111101,4 's complement is 100 (also that is 00000100), 11111101^00000100=11111101, complement 11111101 to the original code is 1000111, that is, the decimal -7.
A = 5b = 3print a ^ b
Results: 6
A = 0101b = 0011
A ^ b turns out to be 0110.
XOR operation is the number of digits that do not want to be counted as 1, otherwise the count is 0.
Move left and right
1. Left shift operator <<
Method: X<<n moves the binary number corresponding to a number X to the left N bits.
Example:
3<<2
Solution: 11 move left two bits to 1100, or 12.
2. Right-shift operator >>
Method: X>>n moves the binary number corresponding to a number X to the right N bits.
Example:
3>>2
Solution: 11 Move right two bits to 0.
10>>1
Solution: 10 of the binary is 1010, moving to the right one is 101, that is, 5.
A = 5b = 2print a << b
The result is 20.
A = 0101B = 2
A << b results: 10100
The displacement operation moves the binary number left or right, as on the left 2 units.