环,模,补码,负数的表示与减法实现

  • 假设M是n-bit数的模,比如16是4bit二进制数的模,8是3bit二进制数的模,即从000->111,111+1=1000,超过3bit的那个1被舍弃回到000,0到7首位相连就形成一个环, 模的概念与一个环类似,M+B=-M+B=B,相当于一个时钟(模12)来回拨
  • -1模8是7,-2模8是6,13模8是5,0模8是0,模可以认为是数的规模,一条数字可以这样无限延伸下去
  • 数轴正半轴是0开头,负半轴是1开头
  • 1000定义为-8,这样可以保证正数个数和负数个数相等同时满足负数从1开头的规律
  • M-B又称为B的补(Complement of B)[B],M-B=-B,故可以用M-B代替-B

环,模,补码,负数的表示与减法实现

  • 2^n-D定义数字D的补码这种方式计算需要借位,为消除借位定义r-1的补码
  • D的r-1下的补码=(r^n-1)-D=(M-1)-D
  • X=r-1,r^n-1=XX…X
  • 2^4-1=1111,有个简便方法直接1小数点向右移4位为10000,X为二进制下最大数的符号(Symbol)
  • (r^n-1)-D来计算补码,相当于XX…X-D,每一位都是最大位,不需要借位
    环,模,补码,负数的表示与减法实现
  • 推出重要规律
    r 的 补 码 = r n − D = ( r n − 1 ) − D + 1 = ( r − 1 ) 的 补 码 + 1 r的补码=r^n-D=(r^n-1)-D+1=(r-1)的补码+1 r=rnD=(rn1)D+1=(r1)+1
  • 1-1=0,1-0=1,1-D=D’,可以看成按位取反,称为反码
    环,模,补码,负数的表示与减法实现
  • 采用补码运算仅需要加法器和反相器