第二节 数字化信息编码与数据表示

§1-2-3 二进制数在计算机内的表示

机器数
   
在计算机中,因为只有“0”和“1”两种形式,所以数的正、负号,也必须以“0”和“1”表示。通常把一个数的最高位定义为符号位,用0表示正,1表示负,称为数符;其余位仍表示数值。把在机器内存放的正、负号数码化的数称为机器数,把机器外部正、负号表示的数称为真值数。例如:真值为(-00101100)B的机器数为10101100,存放在机器中,如图1.2.1所示。


图1.2.1 机器数

     要注意的是,机器数表示的范围受到字长和数据的类型的限制。字长和数据类型定了,机器数能表示的数值范围也就定了。例如,表示一个整数,字长为8位,则最大的正数01111111,最高位为符号位,即最大值为127。若数值超出127,就要“溢出”。
数的定点和浮点表示
    计算机内表示的数主要分成定点小数、定点整数与浮点数三种类型。
  1)定点小数是指小数点准确固定在数据某一个位置上的小数。一般把小数点固定在最高数据位的左边,小数点前边再设一位符号位。按此规则,任何一个小数都可以写成:
             N=NsN-1N-2N-3...N-m,         Ns——符号位
    即在计算机中用m+1个二进制位表示一个小数,最高(最左)一个二进制位表示符号(如用0表示正号,则1就表示负号),后面的m个二进制位表示该小数的数值。小数点不用明确表示出来,因为它总是定位在符号位与最高数值位之间。对用m+1个二进制位表示的小数来说,其值的范围:|N|≤1-2m。定点小数表示法主要用在早期的计算机中。
  2)整数的表示法
    整数所表示的数据的最小单位为1, 可以认为它是小数点定在数值最低位右面的一种表示法。整数分为带符号和不带符号两类。对带符号的整数,符号位放在最高位。可以写成:
             N=NsNnNn-1Nn-2...N2N1N0       Ns——符号位
    对于用n+1位二进制位表示的带符号整数,其值的范围为:|N|≤2n-1
  对于不带符号的整数,所有的n+1个二进制位均看成数值,此时数值表示范围为:0≤N≤2n+1-1。在计算机中,一般用8位、16位和32位等表示数据。一般定点数表示的范围和精度都较小,在数值计算时,大多数采用浮点数。
  3)浮点数的表示方法
    浮点表示法对应于科学(指数)计数法,如数110.011可表示为
             N=110.011=1.10011*2+10=11001.1*2-10=0.110011*2+11
    在计算机机中一个浮点数由两部分构成:阶码和尾数,阶码是指数,尾数是纯小数。其存储格式如图1.2.2所示。


图1.2.2 浮点数存储格式

    阶码只能是一个带符号的整数,它用来指示尾数中的小数点应当向左或向右移动的位数,阶码本身的小数点约定在阶码最右面。尾数表示数值的有效数字,其本身的小数点约定在数符和尾数之间。在浮点数表示中,数符和阶符都各占一位,阶码的位数随数值表示的范围而定。
例如:设尾数为4位,阶码为2位,则二进制数N=211*1011的浮点数表示形式为


    应当注意:浮点数的正、负是由尾数的数符确定,而阶码的正、负只决定小数点的位置,即决定浮点数的绝对值大小。
带符号数的表示
    在计算机中,带符号数可以用不同方法表示,常用的有原码、反码和补码。
  1)原码
数X的原码记为[X]原,如果机器字长n,则原码的定义如下:



例如:当机器字长n=8时:
          [+1]=00000001,[-1]=10000001
         [+127]=01111111,[-127]=11111111

由此可以看出,在原码表示法中:
(1)最高位为符号位,正数为0,负数为1,其余n-1位表示数的绝对值。
(2)在原码表示中,零有两种表示形式,即: [+0]=00000000,[-0]=10000000。
  2)反码
数X的反码记作[X]反,如机器字长为n,反码定义如下:


例如:当机器字长n=8时:
         [+1]=00000001,[-1]=11111110
         [+127]=01111111,[-127]=10000000

由此看出,在反码表示中:
(1)正数的反码与原码相同,负数的反码只需将其对应的正数按位求反即可得到。
(2)机器数最高位符号位,0代表正号,1代表负号。
  3)补码
数X的补码记作[X]补,当机器字长为n时,补码的定义如下:


例如:当机器字长n=8时,
         [+1]=00000001,[-1]=11111111
         [+127]=01111111,[-127]=10000001

由此看出,在补码表示中:
(1)正数的补码与原码、反码相同,负数的补码等于它的反码加1。
(2)机器数最高位是符号位,0代表正号,1代表负号。
(3)在补码表示中,0有唯一的编码:[+0]补=[-0]补=00000000。
补码的运算方便,二进制的减法可用补码的加法实现,使用较广泛。
 

7上一页  1 2 3 4  下一页8