如何使用按位操作验证n
号码x
是否可以被{1}}整除?
我在这上面找到很多相关的链接,但我不清楚它们,因为它们不在Python中。例如,如果我想验证81
是否可被3
,9
或4
整除,该怎么办?
我想使用按位操作,我想了解如何使用Python实现它。
答案 0 :(得分:2)
按位操作作为他们的名字让猜测操作数字的二进制表示。这意味着他们通过权力或2来测试可分性是非常有效的,但几乎不能用于任何其他情况。
示例:
n & 1 == 0
n & 3 == 0
n & 7 == 0
可以使用其他可分性规则:你可以调整casting out 9 or 11来测试可分性15或17(基数16用于每字节的半字节),但是因为一个整数除法通常比制作更快许多更简单的操作(累加器直接处理32或64位的数字)很少使用它们......
如果您的要求是按3和9测试可分性,则可以将施放9 为3 = 4 - 1, 11 为9 = 8 + 1 。 81 = 0b1010001
您可以使用轮班(>>
)和二进制&