为什么按位运算比常规方法要快?

时间:2019-05-19 16:19:08

标签: python bit-manipulation bitwise-operators modulo

所以我实际上是在试图理解为什么这些代码执行得更快的原因:

def powmod(b, e, m):
    b2 = b                         
    res = 1                        
    while e:                       
        if e & 1:                  
            res = (res * b2) % m   
        b2 = (b2*b2) % m        
        e >>= 1                 
    return res
............
............

x = powmod(x,16971,25777)
............
............

除此之外:

#x belongs to a list, type numpy.int64
x1 =(pow (x,16971)%25777)

我不能使用pow()来使用第3个参数,该函数的所有输入都必须是整数,但是这里x是numpy.int64类型的数据。 通过使用powmod方法,执行时间减少了大约10倍。我真的不明白为什么它更快?任何帮助将不胜感激,让我理解这一点。

0 个答案:

没有答案