python - python 中的 (**) 和 (<<) 有什么区别?

标签 python bit-shift exponent

a = 100000000
c = (2**(a-1))-1
b = (2<<(a-1))-1
m = 1000000007
print b%m
print c%m

输出:

494499947
247249973

我在 python 中使用 ** 和 << 运算符来计算 2 的幂次方。然而,相似的操作给出不同的结果。只是好奇为什么?

最佳答案

结果不同是因为相当于2 ** n1 << n , 不是 2 << n .

关于python - python 中的 (**) 和 (<<) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19882922/

相关文章:

python - 递归计算字符

python - 按多个条件聚合 CSV 行

assembly - 带扩展的循环移位有何用途?

java - 了解按位运算及其在 Java 中的应用

java - Java Biginteger 在 pow 中的最大值

python - 为什么使用十进制值的指数表示法会失败?

python - 在 Tensorflow 中混合前馈层和循环层?

python:编写 XML 需要多少写入访问权限

javascript - 24 位无符号整数

java - 如何在java中计算字符串格式的大数模