计算机体系结构中补码的目的是什么?
补码在数字计算机中用于促进减法运算和逻辑操作。每个基r系统有两种补码方法:r的补码和(r-1)的补码。
(r-1)的补码
9的补
给定一个以r为基数的数N有n个数字,N的(rn-1)的补码表示为(rn-1)-N。对于十进制数r=10和r-1=9,因此N的9的补码是(10n-1)-N。
现在,10n定义了一个数字,其中包括一个1后跟n个0。10n–1是由n个9定义的数字。例如,当n=4时,我们有104=10000和104-1=9999。因此,十进制数的9的补码是通过从9中减去每个数字来获得的。例如,546700的9的补码是999999-546700=453299而12389的9的补码是99999-12389=876I0。
1的补码
对于二进制数,r=2且r-1=1,因此N的1的补码为(2n-1)-N。2n由一个二进制数描述,该二进制数包括1和n个0。2n-1是由n个1定义的二进制数。例如,当n=4时,我们有24=(10000)2和24-1=(1111)2。因此,二进制数的1的补码是通过从1中减去每个数字来获得的。从1中减去二进制数会创建从0变为1或从1变为0的位。因此,二进制数的1的补码是通过将1修改为0并将0修改为1来构造。例如,1011001的1的补码是0100110,而1'
八进制或十六进制数的(r-1)的补码是通过分别从7或F(十进制15)中减去每个数字而获得的。
(r's)补码
10的补
以r为基数的n位数字N的r补码表示为rn-N表示N0和0表示N=0。与(r-1)的补码对比,我们看到r的补码是获得的通过在(r-1)的补码中插入1,因为rn-N=[(rn-1)-N]+1。
因此,十进制2389的10的补码为7610+1=7611,是通过在9的补码值中插入1获得的。二进制101100的2的补码是010011+1=010100,它是通过在1的补码值中插入1获得的。
2的补码
2的补码可以通过保留所有最低有效位0和第一个1不变,然后在所有其他较大的有效位中恢复1的0和0的1来产生。1101100的2的补码是0010100,它是通过保留两个低位0和第一个1不变而获得的,然后在其他四个最高有效位中将1恢复为0和0恢复为1。