Python and Powers Math
Solution 1
Operator ^
is a bitwise operator, which does bitwise exclusive or.
The power operator is **
, like 8**3
which equals to 512
.
Solution 2
The symbols represent different operators.
The ^
represents the bitwise exclusive or (XOR
).
Each bit of the output is the same as the corresponding bit in x if that bit in y is 0, and it's the complement of the bit in x if that bit in y is 1.
**
represents the power operator. That's just the way that the language is structured.
Comments
-
Interrupt almost 2 years
I've been learning Python but I'm a little confused. Online instructors tell me to use the operator ** as opposed to ^ when I'm trying to raise to a certain number. Example:
print 8^3
Gives an output of 11. But what I'm look for (I'm told) is more akin to: print 8**3 which gives the correct answer of 512. But why?
Can someone explain this to me? Why is it that 8^3 does not equal 512 as it is the correct answer? In what instance would 11 (the result of 8^3)?
I did try to search SO but I'm only seeing information concerning getting a modulus when dividing.
-
nhahtdh almost 12 years^ is XOR operator, ** is power. Search for XOR (google or stackoverflow) to know what it means.
-
Interrupt almost 12 yearsWow, thank you so much. I thought I was doing something wrong (and in essence I suppose I did for assuming ^ was for powers in Python. Thank you for the clarification.
-
mgilson almost 12 years@user1527653 -- don't forget to accept an answer (click the little checkmark next to an answer). That helps others who have the same problem you did by letting them know immediately which of the posted solutions was most useful to you.
-
-
mgilson almost 12 yearsIt might also be worthwhile to point out that
8.^3
raises an exception since bitwise operations only work with integers -
Interrupt almost 12 yearsWow, I've never had to work with bitwise operators before (after all I'm just learning the language), so interesting! Thank you