if(e & 1) 在 python 中意味着什么?

What is if(e & 1) means in python?

所以我在 SO 上阅读了一个问题,但我不明白它的答案的代码。它正在做一些明智的操作,但我不知道它是如何工作的以及 while 循环中实际发生了什么以及 mod 在 b2 = (b2*b2) % m

的需要
        b2 = b                         
        res = 1                        
         while e:                       
            if e & 1:                  
                res = (res * b2) % m   
            b2 = (b2*b2) % m        
            e >>= 1

谁能帮我理解一下?

这是一个按位与操作。在按位二进制运算中,二进制形式的两个数字由其对应的位处理。所以 1 只是一位。它将与数字的最后一位进行比较。因此,如果 1 的最后一位为 1,则 a&1 将为 return 1,否则为零。所以 if 块将相应地执行 例如 12 和 1
1 1 0 0
0 0 0 1
_________
0 0 0 0