Python中有个按位取反运算符:,但这个运算符并不是真正的按位取反,而是效果相当于原值乘以负一再减一,如:6 = -7.

具体原来请大家参考《Python的按位取反运算符~的简单解析》。

如果要对相关数据进行按位取反,但符号位保持不变,则应该这样处理:

如果x小于0:x按位取反 = -abs(x) & 0b111…11)

如果x大于等于0:x按位取反 =(x & 0b111…11)

后面的0b表示二进制,1的个数需要看x的位数确认,如是256位二进制,可以使用0xff。

Python中数字按位取反的方法_python