Bitwise Operators in python
Table of Contents
Introduction
Bitwise operators work on bits and perform the bit-by-bit operation. Hence it is called a bitwise operator. Therefore, all the integer values will be converted to binary digits which are 0s and 1s for bitwise calculation.
So, how to convert an integer to a binary number and vice versa?
Well, it is easy to convert the integer to binary number in python. Python’s built-in function bin() can be used to obtain a binary representation of an integer number. For instance, we know that binary representations for integer value 10 are 1010. So, how to check in a python interpreter?
>>> bin(10)
'0b1010' # b is to represent that it is a binary digit
Now to convert binary to an integer, you have to use the built-in int() function. The syntax is >>>int(‘binary number’, 2); here 2 is a base number, where binary takes base 2 to convert into a number system.
For example, we have seen that binary number 1010 represents integer value 10. So, let’s check in python interpreter;
>>> int("1010",2)
10
Now, let’s look into six ways in which python supports bitwise operators:
Five bitwise operators
1. Binary AND (&)
Sets each bit to 1 if both bits are 1. Otherwise, it will be 0.
Example:
>>> a = 10
>>> b = 11
>>> a & b
10
An explanation for the above example:
2. Binary OR (|)
Sets each bit to 1 if one of two bits is 1. Otherwise, to 0.
Example:
>>> a = 10
>>> b = 11
>>> a | b
11
An explanation for the above example:
3. Binary XOR (^)
Sets each bit to 1 if the corresponding bits of two operands are opposite. Otherwise to 0.
Example:
>>> a = 10
>>> b = 11
>>> a ^ b
1
An explanation for the above example:
4. Binary NOT (~)
Returns 1’s compliments of the number.
Example 1:
>>> a = 10
>>> ~ a
-11
An explanation for example 1:
Example 2:
>>> b = 11
>>> ~b
-12
An explanation for example 2:
5. Binary left shift (<<)
Left shift operators shift all bits towards the left by a certain number of specified bits.
Example:
>>> a = 10
>>> a << 1
20
Explanation: binary number for integer value 10 is 1010. So, when we left-shift the value by 1, it becomes 10100 which is the same as 00010100. Therefore, the decimal value for 00010100 is 20.
>>> int("00010100",2)
20
6. Binary right shift (>>)
Shift right by pushing copies of the leftmost bit in from the left, and let the rightmost bits fall off as per the specified bits.
Example:
>>> a = 10
>>> b = 11
>>> a >> 1
5
>>> b >> 1
5
Explanation: Binary value for decimal number 10 is 1010. When we apply a right shift by 1; the rightmost bit falls off and it becomes 0101 which is 5 in decimal number.
>>> int("0101",2)
5
Other operators used are:
- Arithmetic Operators
- Comparison Operators
- Assignment Operators
- Logical Operators
- Bitwise Operators
- Membership Operators
- Identity Operators