首页 > 编程知识 正文

python 取反,qpython

时间:2023-05-03 07:25:45 阅读:39315 作者:4829

直接乘坐python的~代码:

a=3 b=~3 b-4 2 .你不觉得和自己理解的地位相反吗?确实如此。

我们理解的应该是这样的:

的二进制表示形式为(假设为1字节)0000 0011

那么,如果按位反转它,则为1111 1100 (开头1为符号位),该结果不是为-124吗?

当然不是了这样理解的学生一定不知道计算机中的二进制表示(原码、反码、补码)。 详情请参考我的另一篇文章。 在计算机上,所有正数和负数都以二进制补码的形式表示,并被计算机识别。 对于正数,当原始代码=反向代码=补码负数时,原始代码中的最高有效位是1 (标志位),反向代码使原始代码中除标志位之外的位反转0/1,并且补码基于反向代码变为1。 相反,要显示二进制计算结果(例如,逐位取反或两个数相加),必须将补数-1从该处取反。 也就是逆过程。 这样计算的就是我们人类能理解的十进制数。

那么,上面的1111 1100,-1之后是1111 1011,反算为1000 0100,- 4,3http://www.Sina .

举另一个例子,按位反转-126(3358www.Sina.com/1111110 )。

首先,找到-126的补码这样才是对的!000 0010。

然后,直接反转的结果是1111 1101;

而且,对于这样正数,由于知道其逆过程的结果是自身的1111 1101,所以结果是125

慢着,我们能找到一点规律吗?0,正数3的每位反转为-4,负数-126的每位反转为125,输入数为x x x,则每位反转的结果为1(x1 )-1 * (x1 )1) x1 )

至此,python上的逐位反向操作探索结束。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。