Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
首先,我不是 Python 专家,所以这是我的主题:
我想反转一个数字,比如说number = "ABCD123"(是的,这是一个字符串,但我需要这样做......),问题是我对 Python 处理反转的方式并不满意,~0xABCD123例如-180146468而且我不希望 MSB 只反转“当前”位。我可以选择类似的东西,~0xABCD123 & 0XFFFFFFF但数字的大小实际上可以改变......
number = "ABCD123"
~0xABCD123
-180146468
~0xABCD123 & 0XFFFFFFF
问题
有没有办法使用运算符动态“转换”或删除 Python 中的位符号~
~
一个简单的黑客:
def invert_int(n): number_bit_len = n.bit_length() max_val = (2 ** number_bit_len) - 1 return ~n & max_val