20191031:Python取逆运算详细求解
进行逆运算:~3==4
1 .将数字3======="转换为二进制表示,设为011
相对于2.011反转100
3 .为什么表示-4
a .计算机用补数表示负数,正数补数是本身,负数补数是其反码1。 现在,我们家人知道100表示负数的补数。 需要的是求出其源代码,转换成十进制是我们要求的结果
b .因此,对负数补码求其原码的具体过程如下。
I .如果补数的最高有效位为0,则原代码为补数,例如0110的源代码也为0110
ii .如果补数最高有效位是1,则原代码是补数的逆代码1,取相倒数
011
001
请参见------------------------------------------------------- -
100
以100为例,100的反码为011,011==100,100,变换为十进制为4,取相反数为-4
=========================================================================================
反推:~-4==3
1.-4存储器中存储格式为100 (存储有补数),在根据前面的步骤b所示的负的补数求出源代码的过程中,源代码为逆代码011=100====) )-4的源代码为100
2 .对- 4的源代码取逆011,011时,顶部为0,表示正数,因此表示3
重点:计算机存储在内存中的数据作为补充代码存储,所谓的逆运算是针对源代码进行计算的。
1 .正数、反码、补码本身
2 .对于负数,反码是其已编码比特不变的,而其它比特取反
3 .负数时,补码为其反码1
4 .负数补数为其反码1
=========================================================================================
总结:
计算机对一个数求逆过程
1 .首先求出其源代码(因为保存在存储器中的都是相反的代码) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )的源代码) ) ) )。
2 .对源代码进行逆运算
3 .将反转后的值转换为源代码
4 .将源代码转换为十进制真值