IBM-PC汇编语言程序设计 教学课件 ppt 作者 余朝琨 第1章 数据表示法及其转换

上传人:E**** 文档编号:89189399 上传时间:2019-05-21 格式:PPT 页数:22 大小:237.50KB
返回 下载 相关 举报
IBM-PC汇编语言程序设计 教学课件 ppt 作者 余朝琨 第1章 数据表示法及其转换_第1页
第1页 / 共22页
IBM-PC汇编语言程序设计 教学课件 ppt 作者 余朝琨 第1章 数据表示法及其转换_第2页
第2页 / 共22页
IBM-PC汇编语言程序设计 教学课件 ppt 作者 余朝琨 第1章 数据表示法及其转换_第3页
第3页 / 共22页
IBM-PC汇编语言程序设计 教学课件 ppt 作者 余朝琨 第1章 数据表示法及其转换_第4页
第4页 / 共22页
IBM-PC汇编语言程序设计 教学课件 ppt 作者 余朝琨 第1章 数据表示法及其转换_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《IBM-PC汇编语言程序设计 教学课件 ppt 作者 余朝琨 第1章 数据表示法及其转换》由会员分享,可在线阅读,更多相关《IBM-PC汇编语言程序设计 教学课件 ppt 作者 余朝琨 第1章 数据表示法及其转换(22页珍藏版)》请在金锄头文库上搜索。

1、第1章 数据表示法及其转换,1.1 进位计数 1.2 各种数制间的相互转换 1.3 二进制整数转换为十进制整数 1.4 二进制小数转换为十进制小数 1.5 数的符号表示,第1章 数据表示法及其转换,1.1 进位计数制 表示一个数值数据要有三个要素:进位计数制、小数点和数的正负符号。 进位计数制、基数和位权: 按进位方式计数的数制叫做进位计数制,简称进位制。在我们日常生活中,人们习惯于用十进制,即“逢十进一”的数来表示数据。但在计算机内部,数据是以二进制形式表示的,二进制数只有“0”和“1”两个数字,便于用具有两种稳定状态的物理元件或数字电路中,如双稳态电路来保存二进制信息等。二进制数运算简便,

2、相应的运算线路也十分简单。为了使编程者书写数据或输入数据的方便,常用八进制和十六进制。同一个数用不同的数制表示,这就存在着它们之间的相互转换问题。,一个任意的R进制数N,都可写成: NKnKn-1K1K0.K-1K-2K-m KnRn+Kn-1Rn-1+K1R1+K0R0+K-1R-1+K-2R-2+K-mR-m 式中m、n为正整数;Ri是对应位的位权;R为R进制的基数。所谓基数,就是指在该计数制中每个数位Ki可能用到的数字符号的个数,其系数可为0(R1)。每个数位计满R后就向高位进位,即“逢R进一”,在R进制数中相邻两个数位的权相差R倍,亦即当小数点向左移一位时,数值缩小R倍;而当小数点向右

3、移一位时,数值扩大R倍。 基数R2时,为二进制数,权为2i,Ki为0,1二个数字中的一个,逢二进位。 ,基数R8时,为八进制数,权为8i,Ki可为0,1,7八个数字中的一个,逢八进位。 基数R10时,为十进制,权为10i,Ki可为0,1,9十个数字中的一个,逢十进位。 基数R16时,为十六进制数,权为16i,Ki可为0,1,9,A,B,C,D,E,F十六个数字中的一个(A,B,C,D,E,F与十进制数字的对应关系为:10,11,12,13,14,15),逢十六进位。 ,在书写不同进位计数制的数值时,通常在一个数的末尾用一个标识字母来表示该数是什么进位计数制的数。二进制数用字母B(Binary)

4、,八进制数用字母O(Octal),通常用Q,十进制数用字母D(Decimal,是默认的,可不写),十六进制数用字母H(Hexadecimal)。如果数的尾部没有任何字母,那末计算机接收到这样的数就默认为是十进制数。例如:101101B,127Q,178D或178,3CH等。,1.2 各种数制间的相互转换 由于八进制数,十六进制数与二进制数之间有固定的对应关系,从小数点开始分别向左右按每3位或按每4位二进制数为一组就可以方便地完成八进制、十六进制与二进制之间的相互转换。因此,各种数制间的相互转换最主要是十进制与二进制之间的相互转换。这两种数制间的相互转换方法可以很方便地引入到十进制数与八、十六进

5、制数之间的相互转换。,1.2.1 R进制数据转换成十进制数 把任意R进制数写成按权展开式后,再求和,就可以得到该R进制数对应的十进制数。 例:将十六进制数3A9.3C转换成十进制数。 解:(3A9.3C)16=3162+10161+9160+3161+1216-2 =768+160+9+0.1875+0.046875 =(937.234375)10,1.2.2 十进制整数转换为二进制整数 有两种转换方法: (1)减权定位法 对于二进制数,其多项式可写为: Kn2n+Kn-12n-1+K222+K121+K020 多项式中每项的系数Ki仅取0或1,由系数组成的一个二进制数: KnKn-1K2K1

6、K0 而2n2n-1222120则是每项的位权。若该项系数Ki=0,则该项的值为0,若Ki=1,则该项的值为对应项位权的值2i 。,二进制数中各位的权值为:纯整数的最低位为1,往左每位以2的倍率递增。这种权值是很好记的。只要画出下列草图,即可方便地用减法完成转换。 位权1024 512 256 128 64 32 16 8 4 2 1 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 根据二进制的位与权的对应关系可导出十进制整数转换成二进制整数的规律:把待转换的十进制数可能达到二进制的最高位权开始,依次用待转换的十进制数与各位的权值进行比较,如够减,则该位系数Ki(或Di)确

7、定为1,同时将待转换的十进制数减去该位权值,用余下的数继续往下比较;若不够减,则该数位的Ki(或Di)定为0。依此类推,可进行到所有二进制数位都能给予确定为止。 例如:十进制数338转换成二进制数。,从权位表可知33864 ; K6=1 82-64=1816 ; K4=1 18-16=28 ; K3=0 24 ; K2=0 很明显 ; K1=1 ; K0=0 经过上述转换,338D=101010010B。这种转换方法比较直观、简便,且易于验算。尤其十进制数较大时,明显优于“除基取余法”。 (2)除基取余法 若待转换的十进制数为S,可写成二进制的多项式形式如下: S=Kn2n+Kn-12n-1+

8、K222+K121+K020 上式两边同除以基数2后写成:,S/2=(Kn2n-1+Kn-12n-2+K221+K120)+K0/2 显然,等式右边括号内的数为除2的商,K0是余数。如余数为0,则 K0=0,余数为1,则K0=1。这样可以依次判定K1,K2,Kn等各项系数。 转换后338 D=101010010B。这种转换方法,操作步骤统一、规范,较方便于用程序设计来实现数制转换。 1.2.3 十进制小数转换为二进制小数 类似于整数转换,也有两种转换方法: 1减权定位法 与整数转换的减权定位法基本相同,差异在于:位权值不同。二进制纯小数部分的权值从小数点向右第一位的权值为0.5,尔后向右每位以

9、除2递缩,如: 0.5 0.25 0.125 0.0625 . K-1 K-2 K-3 K-4 小数点, 转换的小数需要根据程序要求或计算机字长来确定小数点的位数。 例如:把十进制数0875转换成二进制数的操作步骤为: 0.875大于K-1处的权0.5- K-1=1 0.8750.5 =0.375大于K-2处的权-K-2=1 0.3750.25=0.125等于K-3处的权-K-3=1 则转换的结果为0.875D=0.111B。 2乘基取整法 设待转换的十进制纯小数S写成下列等式: S=K-12-1+K-22-2+Km2-m 等式两边同乘以基数2,可得: 2S=K-1+(K-22-1+K-32-

10、2+K-m2-m+1) 从上式可见,等式右边括号内为小数部分,而括号外K-1为整数部分。也就是说,S乘以基数2后,如整数部分为1,那么K-1=1,否则K-1=0。重复上述操作,把余下的小数部分继续乘以基数2,这样就可依次确定K-2,K-m的值。,例如:转换十进制小数0.8125为二进制小数的具体操作如下: 乘2积的小数部分 0.8125 0.625 0.25 0.5 0.0 积的整数部分 1 1 0 1 (K1) (K2) (K3) (K4) 转换后的0.8125D=0.1101B 1.3 二进制整数转换为十进制整数 有两种转换方法: 1.按权值相加法 首先二进制数各位的系数乘以该位的位权值,

11、尔后把各位的乘积相加即得转换后的十进制数。例如:,10110101B=127+125+124+122+120 =128+32+16+4+1 =181D 2逐次乘基相加法 由于二进制数相邻数位的位权之间的比值是基数2,因此二进制数的展开多项式可以改写成: Kn2n+Kn-12n-1+K121+K020=((Kn2+Kn-1)2+Kn-2)2)2+K0 从右边式子可知转换的方法是:从最高位开始,逐次乘以2再与次高位的系数相加,所得结果再乘以2并与相邻的低位相加,一直进行到加上最低位为止。其操作示意图如下:,1. 4 二进制小数转换为十进制小数 有两种转换方法 1按权相加法 这方法与整数的按权相加法

12、类似。例如: 0.1011B=121+123+124 =0.5+0.125+0.0625 =0.6875D 2逐次除基相加法 操作的具体步骤是:从小数点后的最低位开始,除以基数2后所得数值再与次低位相加,所得结果再除以2并又与相邻高位相加,如此继续到小数点后最高位除以2为止。例如:0.1101B转换成十进制数的操作过程可用下面的图解来示意:,0. 1 1 0 1 二进制数 2 2 2 2 0.8125 0.625 0.25 0.5 十进制数 转换结果:0.1101B=0.8125D 1.5 数的符号表示 1.5.1 机器数与真值 数值数据可有无符号数和带符号数两类。无符号数值是:所有的数位都用

13、来表示数据的数值,它没有符号位,为了方便,通常将它作为正数处理。如n=8,其数值范围为0255,若n=16,其数值范围为065535。,带符号数分为正、负数两种,为使计算机能够表示和识别,将符号进行数字化,一般规定:用“0”表示正号“+”;用“1”表示负号“”。这正好是二进制数中的两个不同数码,符号位放在数值的最高位,即最左边的一位。将符号数码化了的数在机器中的表示形式称为“机器数”,而用“+”、“”符号表示再加上绝对值的数值称之为机器数的“真值”。例如:真值x1=1011011B,其对应的机器数原码为11011011B;真值x2=+0.1011B,其机器数的原码为0.1011B。其中,机器数

14、中的小数点实际上是不存在的,这里用“”仅表示它是小数,要靠编程解释。 带符号的机器数可以用原码,反码和补码三种不同的码制来表示,由于补码表示法在加、减运算中的优点,现在多数计算机都是采用补码表示。,1.5.2 数的原码表示 原码表示法是一种比较直观的机器数表示方法。原码与真值的区别仅仅是原码把符号位数字化了。如:-10110的原码为110110,+10110的原码为010110。 采用原码作乘、除运算比较方便,可单独处理符号位,数值部分即为绝对值,可直接进行乘、除运算。但对于应用最多的加、减运算,原码表示就不太方便了。 1.5.3 数的反码表示 1正数的反码与其原码相同。 例如:X=+1001

15、B X原=X原=01001B 2负数的反码等于对应正数“按位求反”。 如:X=-1011011B, -X原=01011011B(即正数),X反=10100100B,1.5.4 数的补码表示 补码表示的数在加、减运算中符号位一同参与运算,且可将减法化成加法运算。 1正数的补码形式与原码相同。如X=+1001101B 则X补 =X反=X原=01001101B。 2负数的补码符号位与原码相同,其余各位取反,然后末位加1;或者说:负数的补码等于对应的正数“按位求反加1”。 记住以上的规则就不难求一个数的原码、反码和补码了。 1.5.5 十进制数的二进制码(BCD码) 十进制数的二进制编码称为BCD码。引入BCD码的目的是为解决日常习惯的十进制数与机器内的二进制数之间的矛盾,使十进制数与二进制数之间的转换更为方便。最常用的是8421BCD码。它对每一位十进制数码用4位二进制编码来表示,十进制数的 09分别对应于00001001。,十进制数的7368用8421BCD

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号