Difference between logical and bitwise operator

Difference between logical and bitwise operator

Hi Friends, welcome to yet another session in our Python Tutorial Series. Today we will see the Difference between logical and bitwise operator in Python. We have already seen mathematical operators in Python in another session:

Lets see below logical and bitwise operators one by one:

Logical Operator:

Logical operators return the logical output of the expression on which the operator is applied. The answer can be either True/False or 1/0. Below are the logical operators:

and operator – This operator is applied on two conditions and return true when both the conditions are true
or operator – This operator is applied on two conditions and returns true when any one of the conditions is true
not/negation operator – it just negates the condition. This operator is applied on only one condition

This is how the operators behave when used in code:
print(0 and 1) – returns 0
print(0 or 1) – returns 1
print(not 0) – returns True
print(not 2) – returns False

Logical Operators Behavior:

Variable 1Variable 2Andornot Variable1not Variable2
TrueFalseFalseTrueFalseTrue
TrueTrueTrueTrueFalseFalse
FalseTrueFalseTrueTrueFalse
FalseFalseFalseFalseTrueTrue

Logical Operator Priorities:

OperatorPriority
Not1
==2
And3
Or4

Some examples of logical expressions:
print(10>3) – return True
print(5<2) – return False
print(2!=0) – return True
print(not(2==2)) – return False

Bitwise Operator:

Apart from logical operators, we also have bitwise operators. As the name suggest, bitwise operator works on each bit of the two variables while logical operator just worry the value of the two variables. For example, if we have two variables as 1011 and 0101, then bitwise operators will check these two variables at each bit level. Hence there will be 4 checks – 0th bit of both the operators will he checked, 1st bit of both the operators will be checked and so on. Below are the bitwise operators:

&/bitwise and – Applied on two bits and return True when both the bits are True
|/bitwise or – Applied on two bits and returns True when any one of the bits is True
~/bitwise negation – Applied on one bit and negates the bit.
^/xor – Applied on two bits and return True when exactly one of the bit is True

Bitwise Operators Behavior:

Variable1Variable2&|^~ Variable1~ Variable2
0000011
1001101
0101110
1111000

Lets see the difference between logical and bitwise operator. Here we will use two variables and will see operators on both the variables.

Logical Operator:

i=0
j=3

ijlogical i and jlogical i or jlogical not ilogical not j
0303False(0)False(0)

Bitwise Operator:

i=5 = 101
j=6 = 110

ijlogical I & jbitwise i | jbitwise i ^ jbitwise ~ ibitwise ~ j
101110100 (4)111 (7)011 (3)010 (2)001 (1)

Binary shift of numbers:

Binary shift works just like we do normal multiplication and division on integers.
For ex: 23 * 10 = 230 – this means that we shift 23 to the left by one place and put a zero in the space created
400 % 10 = 20 – this means that we shifted 400 to the right by one place and hence last zero got omitted.
In the same way binary shifting is performed. The only difference is that multiplying and dividing is done by 2 instead of 10 because binary numbers are raised to the power of 2. Decimal numbers are raised to the power of 10.
Binary left shift by one bit(var << 1)– this means that multiplying the number by 2 Binary right shift by one bit(var>>1)- this means that dividing the number by 2
17>>1=8
15<<1=30 30>>2=7
30<<2=120

Refer for more details: https://wiki.python.org/moin/BitwiseOperators

Leave a Reply

Your email address will not be published.