ASCⅡ码与补码

Author: 梁贞学 Date: 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|(和小于模)
        补