gpt4 book ai didi

python - 使用按位运算验证整除规则

转载 作者:行者123 更新时间:2023-12-04 16:31:24 25 4
gpt4 key购买 nike

如何使用按位运算验证数字 n 是否可以被 x 整除?

我找到了很多关于此的相关链接,但我不太了解它们,因为它们不是用 Python 编写的。例如,如果我想验证 81 是否可以被 394 整除怎么办?

我想使用按位运算,我想了解如何使用 Python 实现它。

最佳答案

顾名思义,位运算让 guess 对数字的二进制表示进行运算。这意味着它们将非常有效地测试 1 或 2 的整除性,但几乎不能用于任何其他情况。

例子:

  • n 可被 2 整除:n & 1 == 0
  • n 可被 4 整除:n & 3 == 0
  • n 能被 8 整除:n & 7 == 0

还有其他可以使用的整除规则:您可以调整 casting out 9 or 11测试 15 或 17 的可除性(基数 16 使用每个字节的半字节),但由于一个整数除法通常比进行许多更简单的操作(累加器直接处理 32 或 64 位的数字)更快,因此很少使用它们......

如果您的要求是测试 3 和 9 的整除性,您可以调整 casting out 9 for 3 = 4 - 1,以及 11 for 9 =8+1 . 81 = 0b1010001

  • 3:2 位数字的总和 必须能被 3 整除 - 从小权重开始:01+00+01+01=0b11 (=3):可整除
  • 9:奇数 3 位数字之和减去偶数之和必须能被 9 整除 - 奇数:001+001=010,偶数:010 - 差为 0:可整除<

您可以使用移位 (>>) 和二进制 & 轻松编写代码

关于python - 使用按位运算验证整除规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33084908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com