How do I manipulate bits in Python?

后端 未结 9 1856
借酒劲吻你
借酒劲吻你 2020-12-12 22:37

In C I could, for example, zero out bit #10 in a 32 bit unsigned value like so:

unsigned long value = 0xdeadbeef;
value &= ~(1<<10);
9条回答
  •  时光说笑
    2020-12-12 23:15

    Some common bit operations that might serve as example:

    def get_bit(value, n):
        return ((value >> n & 1) != 0)
    
    def set_bit(value, n):
        return value | (1 << n)
    
    def clear_bit(value, n):
        return value & ~(1 << n)
    

    Usage e.g.

    >>> get_bit(5, 2)
    True
    >>> get_bit(5, 1)
    False
    >>> set_bit(5, 1)
    7
    >>> clear_bit(5, 2)
    1 
    >>> clear_bit(7, 2)
    3
    

提交回复
热议问题