计算机应用基础
上QQ阅读APP看书,第一时间看更新

1.3.5 数值型数据的表示方法

数值型数据指数学中的代数值,具有量的含义,且有正负之分、整数和小数之分。

1.机器数的概念

任何一个非二进制整数输入到计算机中都必须以二进制格式存放在计算机的存储器中。每个数据占用一个或多个字节。通常把一个数的最高位规定为数值的符号位,用“0”表示正,用“1”表示负,称为数符,其余的数表示数值。这种连同数字与符号组合在一起的二进制数称为机器数。由机器数所表示的实际值称为真值。

要全面、完整地表示一个机器数,应该考虑三个因素:机器数的范围、机器数的符号、机器数中小数点的位置。

(1)机器数的范围。由于计算机设备上的限制及满足操作上的便利,机器数都有固定的位数,因此它表示的数受到固定位数的限制,机器数的范围由硬件(CPU中的寄存器)决定,超过这个范围就会产生“溢出”。

当使用8位寄存器时,字长为8位,所以一个无符号整数的最大值是255,即(11111111)2=(255)10,此时机器数的范围为0~255,如果超过这个值,就会产生“溢出”;当使用16位寄存器时,字长为16位,所以一个无符号整数的最大值是(FFFF)16=(65535)10。此时机器数的范围为0~65535。

(2)机器数的符号。不考虑正负的机器数称为无符号数;考虑正负的机器数称为有符号数。例如,一个8位机器数,其最高位是符号位,那么在定点整数原码表示情况下,对于00110010和10011001,其真值分别为十进制数+50和-25。

如果用一个字节表示一个有符号整数,其取值范围-127~+127。例如:如果用一个字节表示整数,则能表示的最大正整数为01111111(最高位为符号位),即最大值为127,若│数值│>127,则“溢出”。

(3)机器数中小数点的位置。带小数点的数在计算机中用隐含规定小数点的位置来表示。根据小数点的位置是否固定,分为定点数和浮点数。

2.定点数和浮点数

(1)定点数的表示法

定点数的表示法是把小数点约定在机器数的某一固定的位置上。

如果小数点约定在符号位和数值的最高位之间,那么所有参加运算的数的绝对值小于1,即为定点纯小数。

【例1-11】设机器数的定点数长度为2字节(8个二进制位称为一个字节),请用定点数表示(0.8125)10

(0.8125)10=(0.1101)2,在机器内表示形式为

如果小数点约定在数值的最低位之后,那么所有参加运算的数都是整数,即为定点整数。

【例1-12】设机器数的定点数长度为2字节(8个二进制位称为一个字节),请用定点数表示整数(-185)10。(-185)10=(-10111001)2,在机器内表示形式为

定点数在使用时,所有原始数据事先都要按比例转换成纯小数或整数,运算结果还要按比例转换成实际值。

定点表示法所能表示的数值范围非常有限,一个n位的无符号二进制数X,其表示范围为:0≤X≤2n-1,若运算结果超出这个范围,则产生“溢出”。

(2)浮点数的表示法

浮点数是指小数点位置不固定的数,它既有整数部分又有小数部分,如121.57、63.589等。

任何一个二进制数N都可写成:N=±S×2±j

其中就j称为N的阶码,j前面的正、负号称为阶符,S称为N的尾数,S前面的正、负号称为数符。

在计算机中一般浮点数的存放形式为

在浮点数表示中,数符和阶符各占用一位,阶码是定点整数,阶码的位数决定了所表示的数的范围,尾数是定点小数,尾数的位数决定了数的精度,在不同字长的计算机中,浮点数所占的位数不同,一般占用2个或4个机器字长。