+ 1
How we evaluate '|' operator?
a=5|5 b=10|5 print(a+b) # output is 20
3 odpowiedzi
+ 6
you'll get your answer here...
https://www.geeksforgeeks.org/JUMP_LINK__&&__python__&&__JUMP_LINK-bitwise-operators/
a = 5|5
5 = 0101(Binary)
0101 (5 in Decimal)
OR 0101 (5 in Decimal)
- - - - -
0101 (which is 5 in Decimal)
so [a = 5]
b = 10|5
5 = 0101(Binary)
10=1010(Binary)
1010 (10 in Decimal)
OR 0101 (5 in Decimal)
- - - - -
1111 (which is 15 in Decimal)
so [b = 15]
Now, print(a+b)
=> print(5+15) => 20
_____________-_________--_________-______________-
Bonus:
why is 0101 equal to 5?
So the trick is simple just check for 1s in the binary number and then add the corresponding vertical/column value to get the Decimal value.
for example:
[8][4][2][1]
0 1 0 1
here: we have 1 at [4] and [1]
so we just add them to get the Decimal value of ([4]+[1]=5).
Similarly for 1111:
[8][4][2][1]
1 1 1 1
here: we have all 1s at [8], [4], [2] and [1]
so we just add them to get the Decimal value of ([8]+[4]+[2]+[1]=15).
+ 6
It is bitwise OR operators. It evaluates true only if one bit is true.
In case of integers it will do the same for their binary representation.
5|5 = 5
10 = 1010 ( in binary )
5 = 101 (in binary)
10 | 5 is same as
1010
Or 0101
--------------
= 1111
Which is 20 in binary.