java计算器源代码 补码计算器?
补码计算器?1.二进制补码的计算方法二进制补码计算非常简单。各种教材中经常用二进制来说明源代码、反码和补码之间的关系。有一定基础的人都知道规则:1.1原始代码最高位是符号位,0表示正数,1表示负数。比

补码计算器?
1.二进制补码的计算方法
二进制补码计算非常简单。各种教材中经常用二进制来说明源代码、反码和补码之间的关系。有一定基础的人都知道规则:
1.1原始代码
最高位是符号位,0表示正数,1表示负数。
比如X=0b11 (3),四位代表原码=0011(3);X=-0b11(-3),四位代表原码=1011(11);
1.2逆代码
最高位是符号位,0表示正数,1表示负数。
正数的倒数等于自身,负数的倒数除了符号位以外都是反相的:
比如X=0b11 (3),四位表示原码=0011(3),对应的逆码为=0011(3);X=-0b11(-3),用四位表示原码=1011(11),对应的逆码=1100(12);
1.3补充
最高位是符号位,0表示正数,1表示负数。
正数的补数等于自身,负数的补数等于逆1:
比如X=0b11 (3),四位表示原码=0011(3),对应补码=0011(3),补码=0011(3);X=-0b11(-3),用四位表示原码=1011(11),对应补码=1100(12),补码=1101(13);
2、十进制补码计算方法
对于十进制数,通过前面的性质不难得到正十进制数的补数等于自身。对于负十进制数来说,一点一点操作就太麻烦了!为了说清楚,我们先从补语的成因说起:
“补语加一”只是补语的一个性质,不能定义为补语。负数的补码是一种二进制码,可以和它的倒数相加,使计算机中的计算结果通过溢出变成0。这是补码设计的初衷,具体目标是使1 (-1)=0,用原码无法得到:
在补充中:
因此,对于具有n位的负数-X,存在以下关系:
因此,假设寄存器是n位的,那么-X的补码应该是
的二进制代码。
例如,前面的例子:
例如:X=-0b11(-3),四位表示原码=1011(11),对应补码=1100(12),补码=1101(13);
如果寄存器有4位,对应于-3的补码二进制数是13,正好是
十进制数的补码等于自身,N位寄存器下的-X的补码等于
相应的二进制代码。
如果使用python,可以使用amp快速获得补码:
-3amp0xf输出[1]: 13 5amp0xf输出[2]: 5
这里的0xf指0b1111,即4位寄存器。如果是7位寄存器,0b111111就是0x3f。
3.补码已知如何求原码?
对于正数,根据前面的介绍很容易知道原码=补码=逆码。接下来主要讨论给定负数的补码,如何求负数的原码:
3.1二进制
先下结论:补码的补码是原码。让我们开始证明:
已知的二进制补码是
,按照1.3中的过程求补。
事实上,该公式相当于:
可以简单证明,根据逆码的实际求解过程,可以得到如下公式:
当a=a-1时,有:
以上两个公式说明:
用文字描述,就是取其反面加一等于减一取其反面!
所以二进制补码有如下关系:
也就是说补码的补码就是原码,表示否定的东西就是肯定的。
3.2十进制系统
N位寄存器中-X的补码等于
相应的二进制代码。
(1)在十进制系统的情况下,如果给定的补码是一个无符号数
,那么原始代码是
去做吧。
例如,第一个-3补码的无符号数是13,对应的原始代码是
(2)在十进制的情况下,如果给定的补数是有符号数-Y,则对应的无符号数为
,那么原始代码是。
例如,前3补码的有符号数是-5,对应的原码是
2021年10月30日编辑1:39