计算机中数据的表示

作者在 2008-01-13 14:18:05 发布以下内容
 

1.计算机中数据的表示

在计算机中只能用数字化信息来表示数的正、负,人们规定用“0”表示正号,用“1”表示负号。例如,在机器中用8位二进制表示一个数+90,其格式为:

0

1

0

1

1

0

1

0

   ↑                    

  符号位,0表示正

而用8位二进制表示一个数-89,其格式为:

1

1

0

1

1

0

0

1

  ↑

   符号位,1表示负

在计算机内部,数字和符号都用二进制码表示,两者合在一起构成数的机内表示形式,称为机器数,而它真正表示的数值称为这个机器数的真值

2.定点数和浮点数

(1)        机器数表示的数的范围受设备限制

在计算机中,一般用若干个二进制位表示一个数或一条指令,把它们作为一个整体来处理、存储和传送。这种作为一个整体来处理的二进制位串,称为计算机字。表示数据的字称为数据字,表示指令的字称为指令字。

计算机是以字为单位进行处理、存储和传送的,所以运算器中的加法器、累加器以及其他一些寄存器,都选择与字长相同位数。字长一定,则计算机数据字所能表示的数的范围也就确定了。

例如使用8位字长计算机,它可表示无符号整数的最大值是(255)10=(11111111)2。运算时,若数值超出机器数所能表示的范围,就会停止运算和处理,这种现象称为溢出

(2)        定点数与浮点数

计算机中运算的数,有整数,也有小数,如何确定小数点的位置呢?通常有两种约定:一种是规定小数点的位置固定不变,这时机器数称为定点数。另一种是小数点的位置可以浮动的,这时的机器数称为浮点数。微型机多选用定点数。

数的定点表示是指数据字中的小数点的位置是固定不变的。小数点位置可以固定在符号位之后,这时,数据字就表示一个纯小数。假定机器字长为16位,符号位占1位,数值部分占15位,故下面机器数其等效的十进制数为:-2-15 。    

1

000000000000001

 ↑      ·            ↑

 符号位    ↑小数点       数值部分                               

如果把小数点位置固定在数据字的最后,这时,数据字就表示一个纯整数。假设机器字长为16位,符号占一位,数值部分占15位,故下面机器数其等效的十进制数为+32767。

                     

0

111111111111111

     ↑符号位     ↑                      ·

                   数值部分                 ↑小数点    

定点表示法所能表示的数值范围很有限,为了扩大定点数的表示范围,可以通过编程技术,采用多个字节来表示一个定点数,例如,采用4个字节或8个字节等。

(3)        浮点数

浮点表示法就是小数点在数中的位置是浮动的。在以数值计算为主要任务的计算机中,由于定点表示法所能表示的数的范围太窄,不能满足计算问题的需要,因此就要采用浮点表示法。在同样字长的情况下,浮点表示法能表示的数的范围扩大了。

计算机中的浮点表示法包括两个部分:一部分是阶码(表示指数,记作E);另一部分是尾数(表示有效数字,记作M)。设任意一数N可以表示为:N=2EM

其中2为基数,E为阶码,M为尾数。浮点数在机器中的表示方法如下:

   阶符

E

数符

M

            阶码部分                ·   尾数部分

由尾数部分隐含的小数点位置可知,尾数总是小于1的数字,它给出该浮点数的有效数字。尾数部分的符号位确定该浮点数的正负。阶码给出的总是整数,它确定小数点浮动的位数,若阶符为正,则向右移动;若阶符为负,则向左移动。

假设机器字长为32位,阶码8位,尾数24位:

阶符

E

数符

M

            ↑                      ↑   ·

               1位            7位          1位          23位

其中左边1位表示阶码的符号,符号位后的7位表示阶码的大小。后24位中,有一位表示尾数的符号,其余23位表示尾数的大小。浮点数表示法对尾数有如下规定:

     1/2≤M<1       即要求尾数中第1位数不为零,这样的浮点数称为规格化数。

当浮点数的尾数为零或者阶码为最小值时,机器通常规定,把该数看作零,称为”机器零”在浮点数表示和运算中,当一个数的阶码大于机器所能表示的最大码时,产生“上溢”。上溢时机器一般不再继续运算而转入“溢出”处理。当一个数的阶码小于机器所能代表的最小阶码时产生“下溢”,下溢时一般当作机器零来处理。

技术文章 | 阅读 1899 次
文章评论,共0条
游客请输入验证码