初学者问一个问题,number=eval("2" +"2*3^2") ,number为啥是64
number=eval("2" +"2*3^2")
也就是
number=eval("22*3^2")
也就是
66 xor 2
1000010
xor
0000010
=
1000000
也就是64
^是xor不是乘方(相同为0,不同为1)
experation = "2"+"2*3^2"
experation = '22*3^2'
number = eval(experation)
number = 64
没毛病,注意括号里面是字符串拼接,变成了
22* 3 ^ 2,
^ 符号运算符为按位异或,
66 ^ 2
100 0010 ^ 00 0010
结果为:
100 0000 = 64;