补码、反码、原码与python运算符~

**

在python中,~1=-2, ~60 = -61,这是为什么呢?

**
首先,~运算符在python中是按位取反的运算,1的二进制是 0000 0001,按位取反变为 1111 1110,二进制位中的最高位是符号位,1取反之后变成了负数,好,接下来介绍下补码、反码、原码,
计算机中正整数数原码、反码、补码都是一样的,而负整数就有区别了,反码是原码除最高位外其余所有位的逐位求反, 将反码加上1就得到补码。计算机中整数都是以补码形式储存的,所以上面的1111 1110是补码形式,为了直观表示1取反之后到底是多少,我们就把这个补码转换为原码就一清二楚了,首先将1111 1110 减1变回反码 1111 1101 ,然后除去最高位取反 变为原码 1000 0010,也就是-2,所以原因是这个。
学习,痛苦一小时,快乐一整天

猜你喜欢

转载自blog.csdn.net/qq_41841073/article/details/117771046#comments_29672900
今日推荐