1

首先,我不是 Python 专家,所以这是我的主题:

我想反转一个数字,比如说number = "ABCD123"(是的,这是一个字符串,但我需要这样做......),问题是我对 Python 处理反转的方式并不满意,~0xABCD123例如-180146468而且我不希望 MSB 只反转“当前”位。我可以选择类似的东西,~0xABCD123 & 0XFFFFFFF但数字的大小实际上可以改变......

问题

有没有办法使用运算符动态“转换”或删除 Python 中的位符号~

4

1 回答 1

4

一个简单的黑客:

def invert_int(n):
    number_bit_len = n.bit_length()
    max_val = (2 ** number_bit_len) - 1
    return ~n & max_val
于 2013-06-24T12:34:25.423 回答