本文介绍了python检查顺序位是对还是错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想确定序列中的某个位是1还是0(对还是错)如果我有一些位序列11010011,如何检查第4位是True还是False?

I want to find if a bit in a sequense is 1 or 0 (true or false)if i have some bitsequense of 11010011, how can i check if the 4th position is True or False?

示例:

10010101 (4th bit) -> False
10010101 (3rd bit) -> True

推荐答案

不作任何改动:

if bits & 0b1000:
    ...

编辑:实际上,(1 << 3)是由编译器优化的.

Actually, (1 << 3) is optimized out by the compiler.

>>> dis.dis(lambda x: x & (1 << 3))
  1           0 LOAD_FAST                0 (x)
              3 LOAD_CONST               3 (8)
              6 BINARY_AND
              7 RETURN_VALUE
>>> dis.dis(lambda x: x & 0b1000)
  1           0 LOAD_FAST                0 (x)
              3 LOAD_CONST               1 (8)
              6 BINARY_AND
              7 RETURN_VALUE

这两种解决方案是等效的,请选择一种在您的上下文中更具可读性的解决方案.

The two solutions are equivalent, choose the one that looks more readable in your context.

这篇关于python检查顺序位是对还是错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-15 12:37