您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 计算机组成与系统结构复习第2章
计算机组成与系统结构上海交通大学继续教育学院陈泽宇博士副教授第1章计算机系统概论第2章运算方法和运算器第3章存储系统第4章指令系统第5章中央处理器(CPU)第6章总线系统第7章输入输出(I/O)系统第8章并行计算机系统第2章运算方法和运算器2.1数据信息的表示2.2定点运算和定点运算器2.3浮点运算和浮点运算器2.1数据信息的表示2.1.1数值数据的表示2.1.2非数值数据的表示2.1.3数据信息的校验数据有两大类数值数据,有“量”的概念非数值数据数据在计算机中用二进制数码表示信息的数字化编码用“0”和“1”按照一定的组合规则来表示数据、文字、声音、图像、视频等复杂信息2.1.1数值数据的表示1.进位计数制2.各种进制数之间的转换3.数的机器码表示4.定点数的表示5.浮点数的表示6.十进制数串的表示方法在计算机系统中,通常将十进制数作为人机交互的媒介,而数据则以二进制数的形式存储和运算计算机采用二进制的原因易于物理实现具有两种稳定状态的物理器件很多(如门电路的导通/截止、电压的高/低),恰好可以对应表示“1”和“0”采用十进制,就要制造具有10种稳定状态的物理电路,非常困难运算规则简单数学推导已经证明,对R进制数进行算术求和或求积运算,其运算规则各有R(R+1)/2种采用十进制(R=10),就有55种求和或求积的运算规则采用二进制(R=2),仅有3种求和或求积的运算规则,可以大大简化运算器等物理器件的设计机器可靠性高电压高/低、电流有/无都是质的变化,两种物理状态稳定、分明因此二进制码传输的抗干扰能力强,鉴别信息的可靠性高逻辑判断方便二进制的“1”和“0”正好与逻辑命题的“真”和“假”相对应,能够方便地使用逻辑代数工具来分析和设计计算机的逻辑电路但是,用二进制表示一个数所使用的位数比十进制长得多通常使用十六进制来弥补二进制的这一不足1.进位计数制1)十进制2)二进制3)十六进制进位计数制采用从低位向高位进位的方式进行计数的数据表示方法讨论进位计数制要涉及两个基本概念基数(Radix)每个数位所用到的数码符号的个数权(Weight)数码在不同的数位上所表示的数值是不同的每个数码所表示的数值等于该数码本身乘以一个与它所在数位有关的常数,这个常数叫做权1)十进制基数为10,逢10进1一个数的数值大小就是它的各位数码按权相加之和(6543.21)10=6×103+5×102+4×101+3×100+2×10-1+1×10-2任何一个十进制数都可以用一个多项式来表示:式中:Ki的取值是0~9中的一个数码;m和n为正整数推而广之,一个基数为R的R进制数可表示为式中:Ri是第i位的权;Ki取值可以是0,1,…,R-1共R个数码中的任意一个进位原则:逢R进12)二进制二进制只有两个不同的数码“0”和“1”基数为2,逢2进1任意数位的权是2i任何一个二进制数都可表示为3)十六进制基数为16,逢16进1每个数位可取0,1,…,9,A,B,…,F共16个不同的数码和符号中的任意一个其中A~F分别表示十进制数值10~15任何一个十六进制数可表示为不同进制的表示用下标表示(1010)2、(1010)10、(1010)16用后缀字母表示B:二进制(Binary)数H:十六进制(Hexadecimal)数D:十进制(Decimal)数,可省略375D、101B、AFEH三种常用进位计数制的对应关系十进制二进制十六进制十进制二进制十六进制000000810008100011910019200102101010A300113111011B401004121100C501015131101D601106141110E701117151111F2.各种进制数之间的转换1)二进制数转换为十六进制数2)十六进制数转换为二进制数3)二进制数转换为十进制数4)十进制数转换为二进制数1)二进制数转换为十六进制数整数部分和小数部分分别转换以小数点为界,整数部分:从小数点开始往左数,每4位分成一组(可在最左边添“0”)小数部分:从小数点开始往右数,每4位分成一组(可在最右边添“0”)最终使二进制数的总的位数是4的倍数然后用相应的十六进制数取而代之111011.1010011011B=00111011.101001101100B=3B.A6CH2)十六进制数转换为二进制数将1位十六进制数写成4位二进制数,去除整数最左边和小数最右边的“0”3B.328H=00111011.001100101000B=111011.001100101B3)二进制数转换为十进制数按权展开相加法把各位数码与它们的权相乘,再把乘积相加,就得到对应的十进制数100011.1011B=1×25+1×21+1×20+1×2-1+1×2-3+1×2-4=35.6875D4)十进制数转换为二进制数基数乘除法对整数和小数部分分别处理整数部分用除基取余法小数部分用乘基取整法最后将它们拼接起来即可⑴十进制整数转换为二进制整数(除基取余法)除以基数(2)取余数,先得到的余数为低位,后得到的余数为高位用2连续去除十进制整数,直到商等于0为止然后按逆序排列每次的余数(先取得的余数为低位)例如,将175D转换成二进制数:所以,175D=10101111B⑵十进制小数转换为二进制小数(乘基取整法)乘以基数(2)取整数,先得到的整数为高位,后得到的整数为低位用2连续去乘十进制数的小数部分,直至乘积的小数部分等于0为止然后按顺序排列每次乘积的整数部分(先取得的整数为高位)例如,将0.3125D转换成二进制数:所以,0.3125D=0.0101B若要将十进制数175.3125转换成二进制数,应对整数部分和小数部分分别进行转换,然后再进行整合:175.3125D=10101111.0101B注意:十进制小数常常不能准确地换算为等值的二进制小数,存在有一定的换算误差根据精度要求,截取一定的数位,其误差值小于截取的最低一位数的权当要求二进制数取m位小数时,一般可求m+1位,然后对最低位作0舍1入处理3.数的机器码表示1)机器数和真值2)原码3)补码4)反码5)移码1)机器数和真值符号位把正负符号用1位二进制数码来表示机器数(或称机器码)把符号位和数值位一起编码来表示的数“0”表示正号,“1”表示负号,符号位置于最高数值位之前表示形式包括原码、补码、反码、移码真值用“+”、“-”来表示符号的数例如:N1=+0.101101,N2=-0.101101,这是真值,表示成机器数(以原码为例)就是[N1]原=0.101101,[N2]原=1.1011012)原码符号位为0表示正数,为1表示负数,数值部分用二进制数的绝对值表示假设机器数的位数8位(即机器的字长为8位),最高位是符号位,其余7位是数值位,那么,+59和-59的原码分别表示为[+59]原=00111011[-59]原=10111011字长为n的整数原码的定义式注意:0的原码有“正零”和“负零”之分,机器遇到这两种情况都当作0处理[+0]原=00000000[-0]原=10000000原码的表示方法简单易懂,与真值转换方便,但在进行加减法运算时,符号位不能直接参加运算,而是要分别计算符号位和数值位为了解决这些问题,人们引进了数的补码表示法3)补码日常生活中的实例假如现在时间是7点,而你的手表却指向了9点,如何调整手表的时间?有两种方法拨动时针一种是顺时针拨,即向前拨动10个小时另一种是逆时针拨,即向后拨2个小时从数学的角度可以表示为:(9+10)-12=19-12=7或9-2=7对钟表来说,向前拨10个小时和向后拨2个小时的结果是一样的,减2可以用加10来代替这是因为钟表是按12进位的,12就是它的“模”对模12来说,-2与+10是“同余”的也就是说,-2与+10对于模12来说是互为补数的计算机中的加法器是以2n为模的有模器件,因此可以引入补码,把减法运算转换为加法运算,以简化运算器的设计补码的定义把某数X加上模数K,称为以K为模的X的补码[X]补=K+X正数的补码的最高位为符号“0”,数值部分为该数本身负数的补码的最高位为符号“1”,数值部分为用模减去该数的绝对值【例2-1】若X=+0111011,Y=-0111011,求[X]补、[Y]补。【解】[X]补=00111011[Y]补=100000000-0111011=11000101(mod28)通过用模2n减去某数的绝对值的方法来求某数的补码比较麻烦,求一个二进制数的补码的简便方法是正数的补码与其原码相同负数的补码是符号位不变,数值位逐位取反(即求其反码),然后在最低位加1例如,[+59]补=[+59]原=00111011,而[-59]原=10111011,因此,[-59]补=11000100+1=11000101字长为n的整数补码的定义式注意:0的补码只有一种形式,就是n位0采用补码表示法进行加减法运算,比原码运算方便多了符号位可以和数值位一起参加运算不论数是正还是负,计算机总是做加法,减法运算可转换为加法运算4)反码引入反码的目的是便于求负数的补码正数的反码与原码相同,负数的反码是符号位不变,数值位逐位取反例如:[+59]反=[+59]原=00111011,而[-59]原=10111011,因此,[-59]反=11000100。字长为n的整数反码的定义式注意:0的反码也有两个,[+0]反=00000000,[-0]反=11111111在计算机中,求一个数的反码很容易,因此,求一个数的补码也就易于实现采用补码运算,计算机的控制线路较为简单所以,目前大多数计算机均采用补码存储、补码运算,其运算结果仍为补码形式综上所述,在n位机中,用n位二进制数补码表示一个带符号的整数时,最高位为符号位,后面n-1位为数值部分n位二进制数补码表示的范围为-2n-1~+2n-1-1例如,在8位机中,补码表示的范围为-128~+1278位二进制数的各种表示方法二进制数码真值无符号数原码反码补码000000000+0+0+0000000011+1+1+1000000102+2+2+2……………01111101125+125+125+12501111110126+126+126+12601111111127+127+127+12710000000128-0-127-12810000001129-1-126-12710000010130-2-125-126……………11111101253-125-2-311111110254-126-1-211111111255-127-0-1【例2-2】以整数为例,用数轴形式说明原码、反码、补码的表示范围和可能的数码组合情况。【解】表示范围:原码-(2n-1-1)~2n-1-1,反码-(2n-1-1)~2n-1-1,补码-2n-1~2n-1-1在补码表示中“0”只有一种形式,且用补码表示负数时范围可到-2n-1【例2-3】在字长为8位的计算机中,下列数的原码、反码及补码各为多少?+18,-18,+31,-31,+127,-127【解】字长为8位的计算机所能表示的机器数是8位,最高位为符号位,后面7位为数值位。因此:[+18]原=[+18]反=[+18]补=00010010[-18]原=10010010[-18]反=11101101[-18]补=11l01110[+31]原=[+31]反=[+31]补=000111111[-31]原=10011111[-31]反=11100000[-31]补=11100001[+127]原=[+127]反=[+127]补=011111111[-127]原=11111111[-127]反=10000000[-127]补=100000015)移码移码也称为增码或偏码,常用于表示浮点数中的阶码对于字长为n的计算机,若最高位为符号位,数值位为n-1位,当偏移量取2n-1时,则其真值X所对应的移码的定义式[X]移=2n-1+X(-2n-1≤X2n-1)将移码定义与整数补码的定义相比较,可以得到移码和补码之间的关系当0≤X<2n-1时,[X]移=2n-1+X=2n-1+[X]补当-2n-1≤
本文标题:计算机组成与系统结构复习第2章
链接地址:https://www.777doc.com/doc-2100883 .html