ASCⅡ码与补码 梁贞学 1994-01-28 计算机内数的符号是用编码表示的。用“0”表示正数的“+”号,用“1”表示负数的“-”号。符号放在机器字长的最高位,机器中数的表示如下图。其中n为机器字长且n通常是字节(一字节=8位二进制)的倍数,如n=8、16、32、64等,为符号位,存放尾数,尾数的绝对值<=2^(n-1)-1。 ┌___________┐ │ Dn-1 Dn-2……D1d0 │ │ 数符 尾数 │ └___________┘ 这种数符数码化的数称为机器数。例如数N1、N2的机器数表示: 设N1、N2的真值(真值,机器数原来的表示法)为 N1=+0110101 N2=-1101110 N1、N2的机器数表示如下: ┌_____________┐ │ N1 00110101 N2 11101110 │ │ 符号 尾数 符号 尾数 │ └_____________┘ 补码是机器数的一种表示法。数X的补码记为[X]补。 补码的求法: 二进制数X的补码等于2^n+X,记为 [X]=2^n+X (2.2.1) 补 2n称为模,n机器字长,补码的字长数表示如下图。 ┌____________┐ │ Dn Dn-1 Dn-2…… D0 │ │ 模 符号 尾数 │ └____________┘ 大于等于模的数,其模在机器字之外,所以丢失一个模。 当X为正时,[X]表示为 补 [X]=2^n+X=X(和大于模丢失模) 补 当X为负时,[X]表示为 [X]=2^n+X=2^n-|X|(和小于模) 补