是否可以检查数字是否在按位运算的范围内?

时间:2018-01-21 04:47:10

标签: python bit-manipulation bitwise-operators

是否可以仅使用按位操作来检查数字是否介于两个数字之间?

在Python中,你可以做这样的事情。

if 10000 <= number <= 30000:
    pass

最终,您可以使用循环来执行检查范围所需的任何数学运算或比较运算。我想知道是否有更优雅的解决方案。

1 个答案:

答案 0 :(得分:2)

不,没有更好的&#34;优雅&#34;解决这个问题。让我们来解决一些可能的问题。

  1. 可读性
  2. 这难以理解吗?没有丝毫。但是,使用按位运算的替代方案,假设它是可能的,将不会比这更具可读性或优雅性。

    1. 性能
    2. 让我们做一点timeit测试:

      %timeit 10000 <= 20000 <= 30000
      10000000 loops, best of 3: 92.8 ns per loop
      

      这需要93 纳秒。就处理器生命周期而言,这几乎没有。如果您的代码存在任何瓶颈,那么这肯定不会成为其中之一。