《计算机中的信息表示课件》由会员分享,可在线阅读,更多相关《计算机中的信息表示课件(113页珍藏版)》请在金锄头文库上搜索。
1、第2章计算机中的信息表示2.1无符号数和有符号数无符号数和有符号数2.7指令信息的表示指令信息的表示2.3定点运算定点运算2.2数的定点表示和浮点表示数的定点表示和浮点表示2.4浮点四则运算浮点四则运算2.5算术逻辑单元算术逻辑单元2.6字符的表示字符的表示2.8校验技术校验技术2.1无符号数和有符号数2.1.1无符号数以机器字长为16位为例,无符号数的表示范围为065535,而有符号数的表示范围为-32768+32767。1机器数与真值2.1.2有符号数把符号“数字化”的数叫做机器数,而把带“+”或“-”符号的数叫做真值。2原码表示法3补码表示法(1)补数的概念如时钟指示6点,欲使它指示3点
2、,既可按顺时针方向将分针转9圈,又可按逆时针方向将分针转3圈,结果是一致的。(2)补码的定义小数补码的定义为4反码表示法例例2.1设机器数字长为8位(其中一位为符号位),对于整数,当其分别代表无符号数、原码、补码和反码时,对应的真值范围各位为多少?5移码表示法当真值用补码表示时,由于符号位和数值部分一起编码,与习惯上的表示法不同,因此人们很难从补码的形式上直接判断其真值的大小2.2数的定点表示和浮点表示2.2.1定点表示在定点机中,由于小数点的位置固定不变,故当机器处理的数不是纯小数或纯整数时,必须乘上一个比例因子,否则会产生“溢出”。2.2.2浮点表示1.浮点数的表示形式2.浮点数的表示范围
3、3.浮点数的规格化2.2.3定点数和浮点数的比较2.2.4举例2.2.5IEEE7542.3定点运算2.3.1移位运算1.移位的意义2.算术移位规则例2.7设机器数字长为8位(含一符号位),若A26,写出三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。其中(a)真值为正的三种机器数的移位操作;(b)负数原码的移位操作;(c)负数补码的移位操作;(d)负数反码的移位操作。3.算术移位与逻辑移位的区别有符号数的移位称为算术移位,无符号数的移位称为逻辑移位。逻辑移位的规则是逻辑左移时,高位移出,低位添0;逻辑右移时,低位移出,高位添0。例如,寄存器内容为01010011,逻
4、辑左移为10100110,算术左移为00100110(最高数位“1”移丢)。又如寄存器内容为10110010,逻辑右移为01011001。若将其视为补码,算术右移为11011001。显然两种移位的结果是不同的。上例中为了避免算术左移时最高位丢1,可采用带进位(CY)的移位,其示意图如图2.4所示。算术左移时,符号位移至CY,最高位可避免移出。2.3.2加法与减法运算(2)溢出判断对于加法对于加法,只有正数加正数和负数加负数两种情况下才可能出现溢出,符号不同的两个数相加是不会出现溢出的。对于减法对于减法,只有在正数减负数或负数减正数两种情况下才可能产生溢出,符号相同的两个数相减是不会出现溢出的。
5、由于减法运算在机器中是用加法器实现的,因此可得如下结论:不论是作加法还是减法,只要实际参加运算的两个数(减法时即为被减数和“求补”以后的减数)符号相同,结果又与原操作数的符号不同,即为溢出。计算机中采用一位符号位判断时,为了节省时间,通常用符号位产生的进位与最高有效位产生的进位异或操作后,按其结果进行判断。若异或结果为1,即为溢出;异或结果为0,则无溢出。例2.12中符号位有进位,最高有效位无进位,即101,故溢出。例2.13中符号位有进位,最高有效位也有进位,即110,故无溢出。(3)补码定点加减法所需硬件配置(4).补码加减运算控制流程2.3.3乘法运算上述运算过程可归纳为:乘法运算可用移
6、位和加法来实现,当两个四位数相乘,总共需做四次加法和四次移位。由乘数的末位值确定被乘数是否与原部分积相加,然后右移一位,形成新的部分积;同时乘数也右移一位,由次低位作新的末位,空出的最高位放部分积的最低位。每次做加法时,被乘数仅仅与原部分积的高位相加,其低位被移至乘数所空出的高位位置。实现这种运算比较容易,用一个寄存器存放被乘数,一个寄存器存放乘积的高位,另一个寄存器存放乘积的低位与乘数。再配上加法器及其它相应电路,就可组成乘法器。又因加法只在部分积的高位进行,故这种算法不仅节省硬件资源,而且缩短运算时间。(3)原码乘法0.0000图中A、X、Q均为n+1位的寄存器,其中X存放被乘数的原码,Q
7、存放乘数的原码。移位或加的选择控制电路受乘数末位Qn控制(当Qn1时,A和X内容相加后,A、Q右移一位;当Qn0时,只作A、Q右移一位的操作)。计数器C用于控制逐位相乘的次数。S存放乘积的符号。GM为乘法标记。原码一位乘控制流程原码两位乘与原码一位乘一样,符号位的运算和数值部分是分开进行的,但原码两位乘是用两位乘数的状态来决定新的部份积如何形成,因此可提高运算的速度。例例2.15 设x=0.111111,y= -0.111001,用原码两位乘求xy原。2.3.4除法运算1.分析笔算除法按照每次减法总是保持余数不动低位补0,再减去右移后的除数这一规则,则要求加法器的位数必须为除数的两倍。仔细分析
8、发现,右移除数可以用左移余数的办法代替,其运算结果是一样的,但对线路结构更有利。不过此刻所得到的余数不是真正的余数,只有将它乘上2-n才是真正的余数。笔算求商时是从高位向低位逐位求的,而要求机器把每位商直接写到寄存器的不同位也是不可取的。计算机可将每一位商直接写到寄存器的最低位,并把原来的部分商左移一位。综上所述,便可得原码除法运算规则。2.4浮点四则运算2.4.1浮点加减运算由于浮点数尾数的小数点均固定在第一数值位前,所以尾数的加减运算规则与定点数完全相同。但由于其阶码的大小又直接反映尾数有效值的小数点位置,因此当两浮点数阶码不等时,因两尾数小数点的实际位置不一样,尾数部分无法直接进行加减运
9、算。因此,浮点数加减运算必须按以下几步进行:对阶,使两数的小数点位置对齐。尾数求和,将对阶后的两尾数按定点加减运算规则求和(差)。规格化,为增加有效数字的位数,提高运算精度,必须将求和(差)后的尾数规格化。舍入,为提高精度,要考虑尾数右移时丢失的数值位。判断结果,即判断结果是否溢出。1对阶2尾数求和3规格化法同样有使尾数变大和变小的两种可能。5溢出判断溢出判断与定点加减法一样,浮点加减运算最后一步也需判溢出。在浮点规格化中已指出,当尾数之和(差)出现01.或10.时,并不表示溢出,只有将此数右规后,再根据阶码来判断浮点运算结果是否溢出。2.4.2浮点乘除法运算2.5算术逻辑单元2.5.1ALU
10、电路2.5.2快速进位链1并行加法器2串行进位链3并行进位链(1)单重分组跳跃进位就是将n位全加器分成若干小组,小组内的进位同时产生,小组与小组之间采用串行进位,这种进位又有组内并行、组间串行之称。(2)双重分组跳跃进位2.6字符的表示2.6.1ASCII码2.6.2UNICODE编码UNICODE使任何语言的字符都可以为机器更容易的接受,UNICODE由UC(UNICODE协会)管理并接受其技术上的修改。UNICODE有双重含义。首先UNICODE是对国际标准ISO/IEC10646编码的一种称谓(ISO/IEC10646是一个国际标准。亦称大字符集。它是ISO于1993年颁布的一项重要国际
11、标准。其宗旨是全球所有文种统一编码)。另外它又是由美国的HP、Microsoft、IBM、Apple等大企业组成的联盟集团的名称。成立该集团的宗旨就是要推进多文种的统一编码。2.6.3汉字编码简介1汉字的输入码2.字符集与汉字内码汉字通过输入码从键盘或通过语音识别从麦克风或通过联机手写或印刷体文字扫描输入等各种手段被输入到计算机内部后,就按照一种称为“内码”的编码形式在系统中进行存储、查找、传送等处理。对于西文字符数据,它的内码就是ASCII码。对于汉字内码的选择,我们必须考虑以下几个因素:(1)不能有二义性,即不能和ASCII码有相同的编码。(2)要与汉字在字库中的位置有关系,以便于汉字的处
12、理、查找。(3)编码应尽量短。1981年我国颁布了信息交换用汉字编码字符集基本集(GB231280)。该标准选出6763个常用汉字随着亚洲地区计算机应用的普及与深入,汉字字符集及其编码还在发展。国际标准ISO/IEC10646提出了一种包括全世界现代书面语言文字所使用的所有字符的标准编码,每个字符用4个字节(称为UCS-4)或2个字节(称为UCS-2)来编码。我国(包括香港、台湾地区)与日本、韩国联合制订了一个统一的汉字字符集(CJK编码),共收集了上述不同国家和地区的共约2万多汉字及符号,采用2字节(即:UCS-2)编码,现已被批准为国家标准(GB13000)。美国微软公司在Windows9
13、5和WindowsNT操作系统(中文版)中也已采用了中西文统一编码,收集了中、日、韩三国常用的约2万汉字,称为“Unicode”(2字节编码),它与ISO/IEC10646的UCS-2编码一致。3汉字的字模点阵码和轮廓描述经过计算机处理后的汉字,如果需要在屏幕上显示出来或用打印机打印出来,则必须把汉字机内码转换成人们可以阅读的方块字形式,若输出内码,那谁都很难看懂。每一个汉字的字形都必须预先存放在计算机内,一套汉字(例如GB2312国标汉字字符集)的所有字符的形状描述信息集合在一起称为字形信息库,简称字库(font)。不同的字体(如宋体、仿宋、楷体、黑体等)对应着不同的字库。在输出每一个汉字的
14、时侯,计算机都要先到字库中去找到它的字形描述信息,然后把字形信息送到相应的设备输出。2.7指令信息的表示2.7.1指令格式5.指令长度(1)指令长度应为存储器基本字长的整数倍(2)指令字长应尽量短2.7.2常用寻址方式7相对寻址8基址寻址9隐含寻址方式10其它寻址方式2.7.3指令类型指令种类及功能请见第四章2.8校验技术当数据被存入存储器或从源部件传输时,对数据M进行某种运算(用函数f来表示),以产生相应的代码P=f(M),这里P就是校验位。这样原数据信息和相应的校验位一起被存储或传送。当数据被读出或传送到终部件时,和数据信息一起被存储或传送的校验位也被得到,用于检错和纠错。假定读出后的数据
15、为M,通过同样的运算f对M也得到一个新的校验位P=f(M),假定原来被存储的校验位P取出后其值为P,将校验位P与新生成的校验位P进行某种比较,根据其比较结果确定是否发生了差错。2.8.1奇偶校验码2.8.2循环冗余校验码循环冗余校验码(CyclicRedundancyCheck),简称CRC码,是一种具有很强检错、纠错能力的校验码。循环冗余校验码常用于外存储器的数据校验,在计算机通信中,也被广泛采用。本章重点关注的内容:本章重点关注的内容:2.1无符号数和有符号数无符号数和有符号数2.7指令信息的表示指令信息的表示2.3定点运算定点运算2.2数的定点表示和浮点表示数的定点表示和浮点表示2.4浮点四则运算浮点四则运算2.5算术逻辑单元算术逻辑单元2.6字符的表示字符的表示2.8校验技术校验技术