首先,我不是一个Python的专家,所以这是我的话题:Python的反转一些
我要反转了许多,让说number = "ABCD123"
(是的,这是一个字符串,但我需要做的这样...),问题是我并不真正满意Python处理反转的方式,例如~0xABCD123
是-180146468
,我不想要MSB但只有“当前”位被反转。我可以像~0xABCD123 & 0XFFFFFFF
但数量实际上可以改变的大小去...
问题
有动态“中投”或与运营商~
取出位符号在Python的方式
首先,我不是一个Python的专家,所以这是我的话题:Python的反转一些
我要反转了许多,让说number = "ABCD123"
(是的,这是一个字符串,但我需要做的这样...),问题是我并不真正满意Python处理反转的方式,例如~0xABCD123
是-180146468
,我不想要MSB但只有“当前”位被反转。我可以像~0xABCD123 & 0XFFFFFFF
但数量实际上可以改变的大小去...
问题
有动态“中投”或与运营商~
取出位符号在Python的方式
一个简单的黑客:
def invert_int(n):
number_bit_len = n.bit_length()
max_val = (2 ** number_bit_len) - 1
return ~n & max_val
如果你想要做什么,你说,为什么不并将其与16 **(你的字符串长度) - 1? –
例如我有'0XD5'这是二进制'11010101',当我做'〜0xD5'结果是'-214',但我想要的结果是像'00101010'这样的反转。也许我误解了Python的'〜' – Jaay
的概念。在这种情况下,您最好使用FF..F异或。我不认为Python中有无符号整数。 –