理论教育 计算机运算基础:信息表示和操作技术

计算机运算基础:信息表示和操作技术

时间:2023-11-04 理论教育 版权反馈
【摘要】:基数取10的,称为十进制数;基数取2的,称为二进制数。计算机内信息和数据主要用二进制进行表示和运算。因此,若运算结果超出了结果单元能表示的范围,则产生溢出。计算机内浮点数的基数通常是2,但也有以4位二进制数为一组,而用R=16为基数的。计算机厂家生产的机器的浮点表示法各不相同,尤其是阶码的表示法和“规格化”浮点数的定义。

计算机运算基础:信息表示和操作技术

1.进位计数制及进制计算

数值N可表示为

式中,数值N有m位小数、k+1位整数,di是每位数字的取值,R是该数的基数(radix),是大于或等于2的整数,Ri称为di位的权,或者位值。每位数字的取值范围均为0~R-1。基数取10的,称为十进制数;基数取2的,称为二进制数。

计算机内信息和数据主要用二进制进行表示和运算。而四进制、八进制十六进制等2的整数幂进位计数制,只是在作为二进制数的缩略表示时被经常使用。不同进位计数制间的转换是经常进行的变换,应熟练掌握它们的变换原理和方法。

对于二进制数(无符号数)的运算,加、减、乘、除是最基本的计算机运算,应熟练掌握。应该知道如何判断运算的结果:正确还是不正确;是否为零。

2.符号数的表示和运算

符号数也是用二进制数表示和运算的。通常用一位二进制数表示数的符号(+或-)。

(1)原码表示(k位表示)

表示范围:(-2k-1+1)~(2k-1-1)。

原码表示可进行数值的乘、除运算,即先进行数值计算,再把结果的符号加上。

(2)反码表示(k位表示)和运算

表示范围:(-2k-1+1)~(2k-1-1)。

数的反码可用于加法和减法运算。

·加法:Z=X+Y+循环进位。

·减法:Z=X+(-Y)+循环进位。

其中,X、Y、Z是反码表示的数,循环进位是X+Y产生的进位,加到结果的最低位。

(3)补码表示(k位表示)和运算

若引入模数的概念,则有

表示范围:-2k-1~(2k-1-1)。

利用补码可进行加、减、乘、除运算,且

X、Y是补码表示的数,Z、W是结果的补码。

这和无符号二进制数的运算方法基本是一样的,只有如下差别。

无符号数运算的进位表示结果溢出,而符号数运算产生的进位应该舍弃,其结果溢出有其他的判别方法:若正数+正数(或正数-负数)得负数,或者负数+负数(或负数-正数)得正数,则表明结果溢出。

因此,若运算结果超出了结果单元能表示的范围,则产生溢出。这必须用其他方法来指示。这就是“标志位”的用途。通常:

·用Z标志位表示结果是否为0;

·用O标志位表示符号数是否溢出(算术溢出);

·用S标志位表示结果是正数还是负数;

·用C标志位表示结果的最高位是否产生了进位(无符号数有溢出)。

显然,它们都是逻辑变量,且“1”表示真,“0”表示假。

3.十进制数的表示和运算

①要表示一位十进制数,至少要用4位二进制数。常用两种方法表示。

·压缩的BCD数:一字节表示两位BCD数。

·非压缩的BCD数:这又有两种表示方法。

a.ASCII码表示:一字节存放一位十进制数。

b.非ASCII码表示:一字节存放一位数字,高位是0。

②十进制运算采用和二进制运算完全相同的办法,但计算结果要修正为十进制数。修正原则如下。

对压缩的十进制数,若相加则结果:

·低位是非十进制数或产生进位,则在低位加6修正;

·若高位产生进位或是非十进制数字,或者高位结果是9,但低位加6修正,则在高位加6修正。

所以,在十进制运算中,低4位向上是否有进位或者借位,应有指示,这就是半进位H或称辅助进位A,或(十六进制或十进制)数字进位DC的作用。标志位A和C是用来作十进制运算结果调整的。

对于非压缩的十进制数(包括ASCII数字)运算,高位进位没有意义,所以,其低位进位A应传递到C标志位,以便向高位结果传送(用连加指令ADC或连减指令SBB)。

4.逻辑变量的表示和运算

1比特可完全表示1个逻辑变量,因此,逻辑运算都是比特运算。

在逻辑运算中,C、O、A、S标志位均无意义。但8086和其他的CPU在逻辑运算中都改变S标志位,这时,S标志位只表示最高位逻辑运算的结果,没有其他含义。可利用逻辑运算指令把O、C、A置成某种状态:“0”或“1”。

逻辑运算改变P标志位,指示运算结果“1”的个数的奇偶性。

5.文字在计算机内的表示和操作(www.daowen.com)

计算机中的文字用二进制编码表示(外文或汉字)。除了文字外,以下内容也用二进制编码表示。

·数字:0,1,…,9。

·字母:A~Z,a~z。

·标点和符号:!,。,?,:,“,”,‘,’,{},[],(),$,¥,#,&等。

以上都是打印字符,而设备和文件(记录)控制符、传输控制符等是不可打印字符,它们起到某种控制功能。

为了提高传输的可靠性,经常在被传输信息中加入“多余(冗余)”信息,以便收端能验证信息是正确的还是错误的。最简单、最常用的方法是奇偶校验。因此,标志位中加入了P标志位。

6.浮点数的表示和运算

(1)浮点数的表示

前面的例子用的都是定点整数表示法,即数的小数点位置是固定的,在数的最低位后面。此外,还有定点小数表示法,就是小数点在符号位的后面。

浮点数的小数点位置是不固定的,它随每个数的大小而变化。浮点数的一般表示如下:

其中,M是数N的尾数部分,R是数的基数,P是阶码。

计算机内浮点数的基数通常是2,但也有以4位二进制数为一组,而用R=16为基数的。在基数确定后,浮点数就完全由尾数和阶码决定了。

M和P都包括数值和符号。尾数的符号就是该数的符号;而阶码的符号表示小数点在尾数部分的位置,如下:

其中,SP是阶码P的符号位,SM是尾数M的符号位。

计算机厂家生产的机器的浮点表示法各不相同,尤其是阶码的表示法和“规格化”浮点数的定义。关于浮点数的一些概念如下。

·规格化:移动小数点的位置,使其尾数变成其标准格式的过程。

·对阶:移动一个操作小数点的位置,使两个数的小数点对齐(阶码相同)的过程。

下面以IEEE浮点数表示法为例,说明浮点数的表示和运算规则,以便读者对它有一个基本的了解。

IEEE浮点数分单精度和双精度两种,单精度为32位,双精度为64位。单精度的阶码占8位(连符号位),尾数连符号位共24位。双精度的阶码占11位,尾数连符号位共53位。

单精度浮点数格式如下:

双精度浮点数格式如下:

IEEE浮点数规定:规格化浮点数的小数点在符号位SM的后面,且小数点前有一个“1”,即其尾数可表示1~2之间的数。其阶码连同阶码的符号统一编码。对单精度浮点数,阶码等于0表示2-127,等于7FH表示20,等于FFH表示2128。它所能表示的绝对值最小的数是

若小于该数,则表示为机器零,用全0表示。它能表示的绝对值最大的数是

若超出这一范围,则产生上溢出。

下面是一些单精度浮点数表示的示例。

①+1.0=1.0×20,表示为0011 1111 1000 0…0B=3F800000H。

②-3.0=-1.5×21,表示为1100 0000 0100…0B=C0400000H。

③-128.625=-1.000 488 281 25×27,规格化表示为1100 0011 0000 0000 0001 00…0B=C3001000H。

对于双精度浮点数,其阶码有11位,当阶码是3FFH时,表示20;当阶码为0时,表示2-1 023;当阶码是7FFH时,表示2+1 024。它所能表示的绝对值最小的数是

它所能表示的绝对值最大的数是

(2)浮点数的运算

①浮点数加/减法的运算步骤是:

·对阶,使两个操作数的小数点对齐(阶码相同);

·尾数相加减;

·结果规格化(注意小数点前面有一位隐含的1)。

②浮点数乘/除运算:

·尾数相乘/除,得出积/商及余数的尾数;

·阶码相加/减,得出积/商的阶码;

·对积/商和余数规格化;

·将它们的尾数加上符号位。

(3)浮点数的特点

与定点数相比,浮点数有如下特点:

·浮点数表示的数值范围大;

·一般来说,浮点数运算的精度高;

·浮点运算比定点运算复杂,它所需的硬件设备也多。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈