我使用Python的numpy看到了一行代码,如下所示:
~array([0,1,2,3,4,5,4,3,2,1,0,-1,-2])
Run Code Online (Sandbox Code Playgroud)
它给出了输出:
array([-1, -2, -3, -4, -5, -6, -5, -4, -3, -2, -1, 0, 1])
Run Code Online (Sandbox Code Playgroud)
一元运算符(〜)是否采用数组并应用A - > - (A + 1)
如果是这样,那么重点是什么?
Bla*_*rad 14
Chris Lutz的评论是正确的.
看起来它将A变为 - (A + 1),因为在许多现代计算机上,负数表示为相应正整数的二进制补码,其中数减去2^(bit length)(即"两位到位长的幂") ,而不是"两个独家或位长"......).
在这样的系统中,-1将表示为全1.当然,数字的总和也是负数的总和,所以我们有这样的情况
a + ~a = -1 =>
~a = -1 - a =>
~a = -(a + 1)
Run Code Online (Sandbox Code Playgroud)
你注意到了
| 归档时间: |
|
| 查看次数: |
2387 次 |
| 最近记录: |