二章计算机中的信息表示.ppt

上传人:本田雅阁 文档编号:2554477 上传时间:2019-04-07 格式:PPT 页数:125 大小:862.01KB
返回 下载 相关 举报
二章计算机中的信息表示.ppt_第1页
第1页 / 共125页
二章计算机中的信息表示.ppt_第2页
第2页 / 共125页
二章计算机中的信息表示.ppt_第3页
第3页 / 共125页
亲,该文档总共125页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《二章计算机中的信息表示.ppt》由会员分享,可在线阅读,更多相关《二章计算机中的信息表示.ppt(125页珍藏版)》请在三一文库上搜索。

1、1,第二章计算机中的信息表示,2,学习目标,掌握常用的进位计数制及其相互转换方法 掌握原码、补码的表示方法及其相互转换,了解反码表示方法 掌握定点数、浮点数表示方法,能根据给定格式写出典型值 学会查用ASCII表,了解汉字编码的基础知识 掌握常用寻址方式,I/O编址方法;理解指令格式的基本概念,了解常见的指令功能分类,3,第二章计算机中的信息表示,2.1数值型数据的表示方法人类生活中的数 字 2.2字符表示各国的文字 2.3指令信息的表示计算机的“语言”,4,2.1数值型数据的表示方法,FAQ: Q:逢几进位? A:基数 Q:如何使正负号也数字化? A:只有用有电或没电来表示,即0、1 Q:如

2、何表示带小数点的数? A:浮点数,5,2.1数值型数据的表示方法,2.1.1进位计数制 2.1.2带符号数的表示 2.1.3数的定点表示与浮点表示,6,进位计数制,进位计数制是一种计数方法,习惯上常用的是十进制计数法。但在计算机中常用的计数制除了十进制外,还有二进制、十六进制和八进制。 在汇编语言中,每一种进制都有自己的表示方法。 对于以上三种进制数可以通过下表中的对应项互相转换:,7,2.1.1进位计数制,一、计算机中常用的进位制 1.二进制 2.八进制 3.十六进制 4.二十进制 二、各种进位制之间的相互转换 1.十进制整数转换为二进制整数 2.十进制小数转换为二进制小数 3.二进制整数转

3、换为十进制整数 4.二进制小数转换为十进制小数,8,1、十进制表示形式:,2、二进制表示形式:,(D:09),(B:0、1),9,3、八进制的表示形式:,(Q:07),4、十六进制的表示形式:,(H:09,AF),10,2.1.1进位计数制,1.什么叫基数? 2.什么叫权? 计数的方法经过人类历史的漫长演化,到现在已趋于统一,即全世界几乎都用阿拉伯数字符的10进制计数方法。所以,只要不用本国语言,而用数学语言的话,任何一个国家的学生解一个一元二次方程的写法差不多一至。,11,2.1.1进位计数制,也就是说: 3 4 1 5 1 7 0 3 4 5 1 0 这样一模一样的算法,一模一样的写法中,

4、12,2.1.1进位计数制,和美国是一样的。而且全世界也一样。 阿拉伯字符表示的10进制肯定有其优点,否则也不会统一全世界的计数制了。我们中国的字符表示用的是笔划多的可怕的象形文字:壹、贰、叁、肆、伍、陆、柒、捌、玖、拾,从表数字符的繁杂度和没有用位置表示大小的弊病方面,在纸上运算出一个乘法结果都是不可能的。,13,2.1.1进位计数制,叁拾肆 壹 拾伍 所以中国古代的数学家并不是用草稿纸来演算数学的,用的是小竹棍,叫算筹。而且掌握算筹演算法也并不是很容易。,14,2.1.1进位计数制,阿拉伯计数法的优点: 1.没有一个表示10的字符,而世界上的其他计数法都多余了一个表示10的字符。而如果有表

5、示10的字符,则就决定无法用位置来表示大小。 2.比别的表数法多了一个至关重要的0,有了0就可以用位置表示大小。 我们今天用的其他进制都是阿拉伯表数法的推广,都有一个0,15,2.1.1进位计数制,我们现在所使用的各种进位制都是在阿拉伯十进制的原理下衍生出来的,都有一个表示“零”的符号,都采用位置表示大小。 所以,我们在掌握了进位制的原理后,可以将二、八、十六进位统一叙述一下。 链接表格,16,17,二、各种进位制之间的相互转换,第一组:二、八、十六进制转换简单一一对应 第二组:二进制与十进制的相互转换(整数与 小数的转换方法不同),18,1、非十进制数转换成十进制数: 二进制数转换:,八进制

6、数转换:,十六进制转换:,.把各个非十进制数按权展开求和即可。,按权相加法,19,2、十进制数转换成非十进制数: 转换成二进制:除基取余法,2 7,2,13,2,2,6,2,3,2,1,0,1,1,0,1,1,余数,二进制整数高位,二进制整数低位,0.75,2,1.50,2,1.00,1,1,整数,例子:27.75,二进制小数首位,二进制小数末位,结果:,20,转换成八进制:,例子:1725.6875,1725,215,26,3,0,8,8,8,8,5,7,2,3,0.6875,8,5.5000,8,4.0000,5,4,结果:,21,转换成十六进制:,例子:12345.671875,1234

7、5,771,48,3,16,16,16,16,0,9,3,0,3,0.671875,16,10.750000,16,12.000000,A,C,结果:,除基取余法,22,3非十进制数之间的转换:,八进制数转换成二进制数:,7 4 1 3,111 100 001 011,二进制转换成八进制数:,110 010 001 101,6 2 1 5,直接对应法,23,十六进制数转换成二进制数:,A 6 1 C,1010 0110 0001 1100,二进制数转换成十六进制数:,1101 0101 1110 1001 D 5 E 9,返回,直接对应法,24,二、各种进位制之间的相互转换 第一组:二、八、十

8、六进制转换简单一一对应,为什么二、八、十六进制之间的转换无需计算可以用对应代替法互相转换呢? 其实八、十六进制的诞生对于我们的日常生活来说并没有起到多大作用,如果不是毫无作用的话。其实八、十六进制的产生其实就是为了使二进制数字的记录、计算、输入输出得以减少长度从而不易出错。 但为什么只有八、十六进制可以无需计算可以直接转换呢?,25,二、各种进位制之间的相互转换 第一组:二、八、十六进制转换简单一一对应,按照进位制的原理,八进制需要八个不同的符号来表示从小到大的八个基数,因为习惯的原因,我们借用了阿拉伯十进制计数中的从0开始的0、1、2、3、4、5、6、7来表述,而八进制的7以后的数,即7(8

9、)+1(8)=10(8)。 此时我们再回过头看一看二进制,三位二进制数可以表示八个连续不同的数值,26,二、各种进位制之间的相互转换 第一组:二、八、十六进制转换简单一一对应,大小:000、001、010、011、100、101、110、111,到了111已经是三位二进制所能表示的最大的数,此时再加上1的话,就要开始向第四位进位了,即变成了1,000,我们再回头看一下: 7(8)+1(8)=10(8),都是在其最大表示值的地方开始向高位进位。 依此类推,十六进制的数符0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F与四位二进制数0000、0001、0010、0011、0100,2

10、7,二、各种进位制之间的相互转换 第一组:二、八、十六进制转换简单一一对应,0101、0110、0111、1000、1001、1010、1011、1100、1101、1110、1111所对应,而且在十六进制的F后的十六进制数是10(16)即F(16)+1=10(16),而二进制的四位最高数1111的下一位即1111(2)+1(2)=1,0000(2), 而十进制不同,十进制的最高计数符号9,9以后的数就要进位了,即9+1=10,而四位二进制数才能表示9,即1001,而1001的下一位1001(2)+1=1010(2),28,二、各种进位制之间的相互转换 第一组:二、八、十六进制转换简单一一对应

11、,此时大家发现,二进制1001并没有下一位即第五位进位,即没有变成0001,1001,所以大家不能用四位二进制直接代替十进制,但八进制与十六进制却可以直接代替。 举例:,29,二、各种进位制之间的相互转换 第二组:二进制与十进制的相互转换(整数与 小数的转换方法不同),就是因为二进制与八、十六进制之间的关系很紧密,所以也就不存在相互转换的问题。我们的重点在于二进制与十进制之间的转换。,30,二、各种进位制之间的相互转换,1.十进制整数转换为二进制整数 (1)减权定位法 这种方法很简单,我们先看一看二进制各位的权: S(10)=Xn2n+Xn-12n-1+X323+X222+X121+X020

12、而减权定位法的核心是立刻判断出离所给的十进制数最近而又比自己小的权值是多少,31,二、各种进位制之间的相互转换,(2)除基取余法 除基取余法比较抽象,我们先看个例子: 一个十进制的整数116,每次除以2,它的余数我们可以断定,不是一就是零;就如书上例子:,32,二、各种进位制之间的相互转换,2 116 0 2 58 0 2 29 1 2 14 0 2 7 1 2 3 1 2 1 1 2 0 每次除2 每次的商 每次的余数,33,二、各种进位制之间的相互转换,10 1110100 10 111010 10 11101 10 1110 10 111 10 11 10 1 10 0,34,二、各种进

13、位制之间的相互转换,二进制1110100或者任何二进制数除以10,即除以2,相当于每次将1110100向右移动一位,变成111010,丢失的数就是余数,这与116除以2每次记下余数是相同道理的。 这也就是除基取余法的原理。 其实这个道理还可以延伸到任何十进制数向别的进制的转换。比如十进制向十六进制的转换就是将十进制数除以16,记下余数,再除以16,记下余数,依二进制的方法类推,35,二、各种进位制之间的相互转换,最终可以将十进制数转换为十六进制数。 再放之到任何进制的转换都可以用相同的计算方法。,36,二、各种进位制之间的相互转换,2.十进制小数转换为二进制小数 (1)减权定位法 这种方法与十

14、进制整数的减权定位法一样。 (2)乘基取整法 这种方法又有些抽象,我们看一看书上的公式。,37,二、各种进位制之间的相互转换,S=X-12-1+X-22-2+X-m2-m 这里的S应当是这个二进制小数计算出来的十进制,而X-1、X-2、X-3是二进制小数的每一位,正是我们拼命想算出来的。 我们把上面的公式换一种写法: S=0.5X-1+0.25X-2+0.125X-3+X-m2-m 其实就是证实X-1、X-2、X-3各位有还是没有,即有这一位就是1,没有这一位就是0。,38,二、各种进位制之间的相互转换,S=0.5X-1+0.25X-2+0.125X-3+X-m2-m 现在举书上的例子:已知十

15、进制小数是0.635 0.625=0.5X-1+0.25X-2+0.125X-3+X-m2-m 我们用个小技巧,现在先判断X-1位也就是小数点后第一位有没有1,将等式两边同时乘以2: 1.25=0.5?+0.25X-2+0.125X-3+X-m2-m,39,二、各种进位制之间的相互转换,因为左边是1.25,如果0.5这一位没有1的话,就没有0.52这一项,左边也就不可能超过1,所以一定有0.5这一项,这就求得了小数点后第一位。此时式子应当如下: 1.25=1+0.5X-2+0.25X-3+X-m2-m 现在应当求X-2位, 1.25-1=0.5X-2+0.25X-3+X-m2-m 0.25=0

16、.5X-2+0.25X-3+X-m2-m,40,二、各种进位制之间的相互转换,现在又回到求第一位时的情况: 0.25=0.5X-2+0.25X-3+X-m2-m 依次类推,这就是乘基取整法的原理。,41,二、各种进位制之间的相互转换,3.二进制整数转换为十进制数 (1)按权相加法 这是二进制的最基本的概念 (2)逐次乘基相加法 举例:1011=123+022+121+120= 2 2 ( 12+0 )+1 +1,42,二、各种进位制之间的相互转换,4.二进制小数转换为十进制小数 (1)按权相加法 这是二进制的最基本的概念 (2)逐次除基相加法 我们用书上的例子,把0.1011这个二进制小数化为

17、十进制小数,我们换一种写法: S=X-12-1+X-22-2+X-m2-m,43,二、各种进位制之间的相互转换,0.1011=1/2+0/22+1/23+1/24 0.1011=1/24+1/23+0/22+1/2,44,2.1.2带符号数的表示,Q什么是真值? A人们在日常生活中约定俗成用正负号表示的十进制数,也就是我们写在纸上的数字 Q什么是机器数? A一根电线用来表示正负号,只能是用有电或没电来表示。不象我们在纸上写数字的时候,有一个专门表示正负的“+、-”号,使我 们非常从1、2、3这些数字中区分开来。 而计算机中只能用电信号即表示数字又表示正负,45,2.1.2带符号数的表示,因为带

18、符号数本质上就是将最高位的电信号不当作数字内容而当作正负号内容,而每一内存单元或寄存器单元都是有固定的bit位数的,所以符号位就占了一位,表数的范围就有了变化。 一、原码表示法 二、补码表示法 三、反码表示法,最高位表示 正负号,46,2.1.2带符号数的表示一、原码表示法,1.定点小数,一、原码表示法最高位表正负,其余是数的绝对值的大小。注意我们在日常生活中用笔写小数的时候,很轻松的在纸上点上小数点,但是小数点在计算机中一般是计算机默认在某一位上,用不着留下空间专门来存放这个表示点的信号的。,47,2.1.2带符号数的表示一、原码表示法,X真值 0X1 X原码= 1+|X|真值 -1X0 按

19、照上面的公式的定义,大家看一看下面的两个数 00000000 10000000,48,2.1.2带符号数的表示一、原码表示法,根据原码的定义,最高位0代表+号,1代表-号,随后的是数的绝对值的大小 如果把最高位的0、1看成正负号的话,则上面的两个机器数都表示数值0,49,2.1.2带符号数的表示一、原码表示法,这两个数按照定义:最高位表示符号,其余位表示绝对值,则:应该为+0和-0,所以原码表示法的机器数0有两种表示法。 例子:按照我们日常的书写习惯写就的真值 X=+0.1011和X=-0.1011,求其在计算机内部的原码机器数,50,2.1.2带符号数的表示一、原码表示法,2.定点整数 你看

20、他与小数的位数标注有些不一样。 X 0X2n X原码= 2n+|X| -2nX0,51,2.1.2带符号数的表示一、原码表示法,按照定义,我们看看这两个原码: 00000 10000 这两个数是+0和-0,所以0有两种表示。,52,2.1.2带符号数的表示一、原码表示法,3.原码表示法的特点: (1)0有两种表示 (2)小数表示范围-1x1 整数表示范围-2nx2n (3)运算时符号位单独处理 原码其实就是最高位使用0、1表示的符号位加上数的绝对值来表示的一种只有计算机才能使用而不是让人使用只的一种机器数。,53,2.1.2带符号数的表示一、原码表示法,原码表示法的优点和缺点: 1.原码最大的

21、好处就是乘除法容易,只要把原码的绝对值部分进行运算而无须考虑符号。 2.原码的缺点:怎么做减法?也就是说,具体这一次的原码运算究竟是做加法还是减法,是由运算符和两个运算数的正负号共同决定的,而不是很明确地立刻知道这个运算是什么?这大大影响计算机的运算速度。,54,2.1.2带符号数的表示一、补码表示法,补码的由来: 在小学时,我们总是先学加法,然后学减法,这至少说明减法比加法难,而且现在我们在计算时,做减法也比做加法容易出错。 于是人们就动脑筋,想办法把减法变成加法,大家看一看下面的例子: 253 176 ?,55,2.1.2带符号数的表示一、补码表示法,这里面讨厌的就是借位,所以人们就想把借

22、位要么去掉要么无需借位。 999 176 823 大家看看上面的式子,上面的式子仍旧是减法,但是上面的减法无需借位。我们甚至可以从右边向左边减,因为根本不需要借位。,56,2.1.2带符号数的表示一、补码表示法,但这与 253 176 有什么关系呢?我们用个技巧: 253 253 + 999+1 + 823+1 176 1077 1077 -1000 77,57,2.1.2带符号数的表示一、补码表示法,我们把类似于1000-176=824的824叫做 -176的相对于1000的补码或补数。 现在对于二进制,253-176=77 176的二进制是10110000,253的二进制是11111101

23、 11111101 11111101 - 10110000 11111111+1 - 10110000,58,2.1.2带符号数的表示一、补码表示法,大家有没有发现,二进制减法 11111111 - 10110000 不仅无需进位,还可以有二进制自己的优点,即只需将10110000求一下反即可,而最后的和必须要减去100000000,因为内存和寄存器是由位数限制的,会把第九位1自然丢弃,客观上相当于自动减去100000000,59,0,5,10,-5,相当于平移,60,补码加法的分析,被加数与加数相加的所有可能情况有: 正数加正数 正数加负数 负数加正数 负数加负数,61,补码加法的分析,0?

24、,? + 0?,?,0?,? + 1?,?,(1),(2),62,补码加法的分析,1?,? + 0?,?,1?,? + 1?,?,(3),(4),63,2.1.2带符号数的表示一、补码表示法,这是因为一个内存单元或寄存器单元的存存储位数是固定的,有些类似下面的里程表或倒带指示器,64,2.1.2带符号数的表示一、补码表示法,65,2.1.2带符号数的表示一、补码表示法,66,2.1.2带符号数的表示一、补码表示法,67,2.1.2带符号数的表示一、补码表示法,1.补码定义 2.由真值、原码转换为补码 3.由补码表示求原码、真值 4.特点,68,2.1.2带符号数的表示一、补码表示法,例如: 2

25、53-176=77 1000+253-176-1000=253+1+999-176-1000= 253+1+823-1000=253+823+1-1000=1076+1-1000=77 例如: 176-253=999+176-253-999=999-253+176-999=746+176-999=922-999=-77,69,2.1.2带符号数的表示一、补码表示法,补码的出现就是解决减法的问题,它的出现使得计算机中的加、减法运算非常简便,它不必判断数的正负,只要将符号位也参与运算,就能得到正确的结果。而且补码运算中再也没有减法,都是加法运算。我们再回过头看一看,符号位的由来,即某个模的差,这个

26、差是有自己的含义的,不能单纯看成符号位,而其实它主要并不是起符号位的作用。,70,2.1.2带符号数的表示一、补码表示法,1.补码定义 (1)通式X补=M+X(mod M) X 0X1 (2)定点小数的补码表示 X补= 2-|X| -1X0 X 0X2n (3)定点整数的补码表示X补= 2n+1-|X| -2nX0,71,2.1.2带符号数的表示一、补码表示法,补码的补充说明: 就象我们前面所演示给大家看的是补码的发现其实是为了消灭减法,大家可以用这样一种思维去理解补码:补码其实就是专门针对负数而发明出来的,正数根本不需要什么补码,补码是一个减法的差,所以求一个数的补码就是做一个减法。,72,

27、2.1.2带符号数的表示一、补码表示法,负数区域,正数区域,12,6,7,8,9,10,11,73,2.1.2带符号数的表示一、补码表示法,大家从上面这张图要看出,红色区域的负数是-1(11)、-2(10)、-3(9)、-4(8)、-5(7),他们分别是用钟表的模12分别减去1,2,3,4,5,也就是说,用表面上是正数的7、8、9、10、11来代表-5、-4 -3、-2、-1,74,2.1.2带符号数的表示一、补码表示法,+,75,2.1.2带符号数的表示一、补码表示法,从上面的图中,大家要明确,所有的数都要是一种编码,即被减数和减数都必须是补码或都必须是原码。 针对补码,还有一点要注意的是,

28、负数其实也就是减法,减法也就是负数。只要被减数和减数都保证是补码的话,化为补码的过程其实已经进行了求补的运算过程。也就是说,只要负数变成了补码,就已经有了消去负号的过程。,76,2.1.2带符号数的表示一、补码表示法,我们现在来分析一下二进制补码的全部可能的情况: 1.加法 加法的所有情况中,被加数和加数如果是一正一负的话,结果不会超过表数范围。 加法的情况下,出现超过表数范围的只有可能是要么是两个正数相加,要么是两个负数相加的情况下。,77,2.1.2带符号数的表示一、补码表示法,2.减法 减法的情况下,与加法相同的是如果被减数与减数符号相同的情况下不会出现超过表数范围的情况。只有在被减数和

29、减数符号不同的情况下,因为减号会改变减数的符号从而使减数的符号和被减数相同,而原来的减号变成了加号。这时有可能答案超出范围。,78,2.1.2带符号数的表示一、补码表示法,加法的极端情况:(被加数和加数符号相同),1,这个1自然丢失,79,2.1.2带符号数的表示一、补码表示法,减法的极端情况:(被减数和减数符号不同) 0110,1011 1000,1101 1000,1101 1001,1011 1101,1110 0010,0010 1,1自然丢失,80,2.1.2带符号数的表示一、补码表示法,可见,即使自然丢失最高位的0,也有可能答案不对,不对的详细情况,我们在学习加减法指令的时候在加以

30、讨论。,81,2.1.2带符号数的表示一、补码表示法,2.由真值、原码转换为补码 (1)正数的补码与原码相同 (2)负数的补码-原码符号不变,其余取 反加一 (3)手算法,82,2.1.2带符号数的表示一、补码表示法,我们在日常生活中,最习惯见到的真值,而正数根本无须转为补码,或者说正数的补码与真值、原码是相同的。而负数则一定要变为补码。负数变为补码的方法有两种: 1.先变为原码再变为补码。 2.直接由真值变为原码,方法如下: 真值一般由类似-0.625、-53的十进制方式给出,我们先写出其正数的二进制方式。,83,2.1.2带符号数的表示一、补码表示法,0.625的二进制值:0.11,将这个

31、正的二进制值连符号位取反加一,即1.00+0.01=1.01,这个1.01就是真值十进制 -0.625的二进制补码。 类似的是:-53的绝对值二进制数是:11011,加上符号位0,得011011,连符号位求反加一:100101,即得-53的二进制补码:100101,84,2.1.2带符号数的表示一、补码表示法,3.由补码表示求原码、真值 也是取反加一,85,2.1.2带符号数的表示一、补码表示法,4.特点 (1)符号位既起指示正负号的作用,又参与运算 (2)0只有一种表示法,86,2.1.3数的定点表示与浮点表示,一、定点表示法 定点小数 定点整数 二、浮点表示法 定点小数+定点整数,87,2

32、.1.3数的定点表示与浮点表示 一、定点表示法,1.无符号定点整数 2.带符号定点整数 3.带符号定点小数,88,2.1.3数的定点表示与浮点表示 一、定点表示法,1.无符号定点整数 最高位再也不用表示正负号了,最高位也表示数值的大小,89,2.1.3数的定点表示与浮点表示 一、定点表示法,2.带符号定点整数 就是我们刚刚讲过的原码、补码、反码 3.带符号定点小数 就是我们刚刚讲过的原码、补码、反码,90,2.1.3数的定点表示与浮点表示 一、定点表示法,关于数的精度的问题: 每一块CPU、CPU内的寄存器、主存储器在它们的计算单元和存储单元中,在一步四则运算中,所作的数的位数是有限的和固定的

33、,这就存在着数的精度的问题。我们先看一个例子: 一个四位长度的存储单元 如果在这个存储单元内存放的是二进制整数的话,这些整数的精度就是1,91,2.1.3数的定点表示与浮点表示 一、定点表示法,而如果这个存储单元里存放的是定点小数的话,比如存放的是0.1011,大家知道,这个四位二进制小数的十进制数是: S=12-1+02-2+12-3+12-4 S=10.5+00.125+10.0625+10.03125 而四位二进制定点小数的最小表示数只能是,92,2.1.3数的定点表示与浮点表示 一、定点表示法,换算成十进制就是0.03125,这就是精度。换言之,数是每次跳跃0.03125增大或减小这个

34、大小的数的。在计算机科学中,专业术语称之为“离散值”,因为如果把这些二进制数标注在坐标轴上,大家看到的是一些有固定间隔的一些点。,93,2.1.3数的定点表示与浮点表示 一、定点表示法,计算机一次所能计算的二进制数的加减乘除的位数是有限制的,这就决定了一次计算是由精度限制的。我们知道,用来存储数的位数越长,数的精度越高,但是计算机一次所能运算的长度有限,所以要达到高精度的运算有以下几个途径: 1.让计算机一次可以做更长的四则运算。 2.用人工分解的办法编制程序,把一个很长的二进制数的四则运算分解成很多步较短的二进制运算组合。,94,2.1.3数的定点表示与浮点表示 一、定点表示法,3.采用浮点

35、计数法 二进制浮点数就是二进制的科学计数法。科学计数法是有格式上的要求的,必须按照严格的格式要求来转化二进制数。,95,2.1.3数的定点表示与浮点表示 一、浮点表示法,浮点数由一个定点整数和一个定点小数组成。真值为:N=REM, R=2 1.浮点数的原理性(格式) 就是科学计数法的二进制延伸。 阶符 数符,阶码E,尾数M,96,2.1.3数的定点表示与浮点表示 一、浮点表示法,我们中学时学过科学计数法,当然那是十进制的。S=1.24351026,这样又简短有醒目。浮点数其实就是二进制的科学计数法。 1.阶码的底就是进制 2.阶码比例因子RE的指数值,用带符号定点整数表示,即前面所讲的二进制整

36、数机器数的原码、补码、反码的表示。 3.尾数M,用带符号定点小数表示,用规范化约定,比如:,97,2.1.3数的定点表示与浮点表示 一、浮点表示法,以二进制为例,规格化的尾数要求在: 0.5|M|1之间,如果不在这之间,比如: 十进制0.0625他的二进制是:0.0001,并不在 0.5|M|1之间,但是我们可以用0.12-3 来调整使其落在0.5|M|1之间。,98,2.1.3数的定点表示与浮点表示 一、浮点表示法,2.移码(增码) X移=2m+X -2mX2m 移码与补码的表示范围相同,只是在代码形式上符号位相反而已。 举例: X=-(128)十进制=-(10000000)二进制 上面的两

37、个数分别是十进制和二进制的真值, 移码为X=27+(-10000000)=00000000,99,2.1.3数的定点表示与浮点表示 一、浮点表示法,我们在看一看下面的表: X移=2m+X,100,2.1.3数的定点表示与浮点表示 一、浮点表示法,可见,补码与移码的区别只是最高有效位相反,即符号位相反。 3.表示范围与精度 若浮点数的格式如下:,阶码E (M+1位),尾数M(n+1位),101,2.1.3数的定点表示与浮点表示 一、浮点表示法,如果阶码和尾数都用补码表示而不用移码表示的话,则:,102,2.1.3数的定点表示与浮点表示 一、浮点表示法,首先看一看阶码2X,不管X的值是正是负2X这

38、个数不可能是负数。 阶码0111是最大的正数,化为十进制数就是2m-1,那这个数乘以尾数的正数的最大值 0.111即1-2-n就得到正数的最大浮点数值。如果乘以负数的最小值-1的话,就得到最小的负数浮点数值。 阶码的最小的正数是2-2m,这个数乘以最小的正数0.5(因为规范化表示0.5x1),103,2.1.3数的定点表示与浮点表示 一、浮点表示法,得最小正数0.52-2m。拿最小阶码乘以最小的负数尾数-0.5,得到最大的负数-0.52-2m。 4.IEEE754标准浮点格式 这样的标准就是规定了浮点数的格式,其实就是规定了浮点数的定点整数部分和浮点整数部分各占多少长度。,104,2.1.3数

39、的定点表示与浮点表示 一、浮点表示法,105,2.1.3数的定点表示与浮点表示 一、浮点表示法,代码格式为:32位,阶码8位(移码),尾数23位(实际24位数),数符,106,2.2字符表示,即将各个国家、民族的为文字进行数字化,以便于计算机记忆、识别、处理。其核心和办法就是怎样将文字用数字进行编号。而且大家都遵从这个编号。,107,2.2字符表示,2.2.1ASCII码 ASCII(American Standard Code for Information Interchange) 区分数字的2与字符的2的区别 按字母的顺序和数字的天然顺序自然编码 其实只用了七位,最高位是0 例如:I a

40、m 12 years old.对应的ASCII码是: 49 20 61 6D 20 31 32 20 79 65 61 72 73 20 6F 6C 64 2E,108,109,ascII表中的打印与控制字符,110,2.2字符表示,2.2.2汉字编码 1.汉字输入码 万码奔腾,输入码的本质就是把汉字的内在规律性发掘出来。把发现的规律性用数字编上号,而这些数字与国家标准的汉字编码意义对应,就可以 2.汉字交换码 3.汉字内部码,111,2.3指令信息的表示,2.3.1指令格式 2.3.2常见寻址方式 2.3.3指令类型,112,2.3指令信息的表示2.3.1指令格式,1.指令中的基本信息 (1

41、)操作码 (2)操作数或操作数地址 (3)存放运算结果的地址 (4)后继指令地址,113,2.3指令信息的表示2.3.1指令格式,首先要明确的是,计算机内部对CPU而言,那些是需要它去寻址的地方。只有三个地方:主存储器(内存条):CPU内部的寄存器(见书上P115):外部设备的端口。这些地方是编上地址的,而编上地址的目的就是为了让CPU去访问。 指令从何而来? 指令从来不会自动生成,总是有人去事先按照特定的目的去编制好并且必须事先存储在主存储器中,这一点我们在绪论部,114,2.3指令信息的表示2.3.1指令格式,分就已经讲过。因为是按一定的逻辑顺序事先存储好的程序,所以自然而然就面临程序存在

42、什么地方?数据又存在什么地方?的问题。,115,2.3指令信息的表示2.3.1指令格式,2.指令中的地址结构 显地址与隐地址 其实地址不存在什么隐地址还是什么显地址,他们之间的区别就是象我们在日常生活中经常讲的诸如“去上课”“回家”,无需加上你的目的地,大家会自然而然的认为你说的话中所应该去的地方。 在计算机中,有些指令就是固定于某些,116,2.3指令信息的表示2.3.1指令格式,地址处,所以根本无须在指令中指出在什么地方,这就叫做隐地址。 大家再考虑一下什么地方适合做隐地址? 只有CPU内的寄存器和内存的情况下,那一个存储部件更适合做隐地址的地方呢? 当然只有CPU内的寄存器最适合。因为内

43、存条是所有程序数据存放的场所,而且,117,2.3指令信息的表示2.3.1指令格式,内存条在不同的机器上有的买的多有的买的少,而CPU是计算机所必须有的,而且内存条在CPU的外面,远不如在CPU内部的寄存器的存储速度快,所以隐地址一般都是在CPU内的寄存器,而很少是主存储器 我们现在按照指令格式的发展历史罗列一下指令的进化过程。,118,2.3指令信息的表示2.3.1指令格式,(1)三地址指令 指令格式: 指令功能:(A1)OP(A2)A3 (PC)+nPC (2)二地址指令 指令格式: 指令功能: (A1)OP(A2)A1 (PC)+nPC,119,2.3指令信息的表示2.3.1指令格式,(

44、3)一地址指令 指令格式: 只有目的操作数的单操作数指令 指令功能:OP(A)A 隐含约定目的地的双操作数指令 指令功能(AC)OP(A)AC,120,2.3指令信息的表示2.3.1指令格式,(4)零地址指令 指令格式: 不需要操作数的指令 对累加器AC内容进行操作 对堆栈栈顶单元内容进行操作,121,2.3指令信息的表示2.3.1指令格式,3.操作码的结构 固定长度操作码 可变长度操作码 单功能型或复合型操作码,122,2.3指令信息的表示2.3.1指令格式,4.指令字长 变字长指令 固定字长指令,123,2.3指令信息的表示2.3.2常见寻址方式,1.立即寻址 2.直接寻址 3.寄存器寻址 4.间接寻址 5.寄存器间址及其变形 6.变址寻址 7.基址寻址 8.相对寻址 9.堆栈寻址,124,2.3指令信息的表示2.3.3指令类型,1.数据传送类指令 2.输入/输出(I/O)指令 3.算术、逻辑运算指令 4.程序控制类指令 5.其他,125,2.3指令信息的表示2.3.3指令类型,1.数据传送类指令 2.输入/输出(I/O)指令 3.算术、逻辑运算指令 4.程序控制类指令 5.其他,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1