python check if bit in sequence is true or false

bit, python

Solution

Without the bit shifting:

if bits & 0b1000:
    ...

EDIT: 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.

Problem

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? example: ``` 10010101 (4th bit) -> False 10010101 (3rd bit) -> True ```

Original source