📌  相关文章
📜  使用按位运算运算符检查数字是否可被8整除(1)

📅  最后修改于: 2023-12-03 14:49:55.010000             🧑  作者: Mango

使用按位运算运算符检查数字是否可被8整除

当一个整数可以被8整除时,它的二进制表示的末三位一定都是0。因此,我们可以使用按位运算运算符来检查一个数字是否可被8整除。

具体地,我们可以使用&(按位与)运算符来检查数字的二进制表示的末三位是否都是0。代码如下:

def check_divisible_by_8(num: int) -> bool:
    return (num & 7) == 0

代码解释:

  • 由于8的二进制表示为0b1000,末三位为000,因此我们需要用7进行按位与运算。
  • 如果num的末三位都是0,那么(num & 7)的值就是0,因此返回True;否则返回False。

使用示例:

num1 = 16  # 二进制表示为0b10000,末三位都是0,可以被8整除
assert check_divisible_by_8(num1) == True

num2 = 18  # 二进制表示为0b10010,末三位不全是0,不能被8整除
assert check_divisible_by_8(num2) == False

以上就是使用按位运算运算符检查数字是否可被8整除的介绍。