我使用 Python 的 numpy 发现了一行代码,如下所示:
~array([0,1,2,3,4,5,4,3,2,1,0,-1,-2])
它给出了输出:
array([-1, -2, -3, -4, -5, -6, -5, -4, -3, -2, -1, 0, 1])
一元运算符 (~) 是否采用数组并应用 A -> -(A+1)
如果是这样,那还有什么意义呢?
克里斯·卢茨的评论是正确的。
〜是按位求反运算符
看起来它会将 A 变成 -(A+1),因为在许多现代计算机上,负数表示为补码相应的正整数,其中该数字减去2^(bit length)(这是“二的位长度次方”,而不是“二异或位长度”......)。
2^(bit length)
在这样的系统中,-1 将表示为全 1。 当然,一个数及其按位负数的和也会如此,所以我们有这样的情况:
a + ~a = -1 => ~a = -1 - a => ~a = -(a + 1)
正如你所注意到的。