计算机中如何保存数.ppt

上传人:hyn****60 文档编号:70290271 上传时间:2023-01-18 格式:PPT 页数:125 大小:927.50KB
返回 下载 相关 举报
计算机中如何保存数.ppt_第1页
第1页 / 共125页
计算机中如何保存数.ppt_第2页
第2页 / 共125页
点击查看更多>>
资源描述

《计算机中如何保存数.ppt》由会员分享,可在线阅读,更多相关《计算机中如何保存数.ppt(125页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

2、如何表示带小数点的数?A:浮点数4 42.1数值型数据的表示方法2.1.1进位计数制2.1.2带符号数的表示2.1.3数的定点表示与浮点表示5 5进位计数制进位计数制 进位计数制是一种计数方法,习惯上常用的是十进制计数法。但在计算机中常用的计数制除了十进制外,还有二进制、十六进制和八进制。在汇编语言中,每一种进制都有自己的表示方法。对于以上三种进制数可以通过下表中的对应项互相转换:二进制 0000 0001 0010 0011 0100 0101 0110 0111十进制 0 1 2 3 4 5 6 7十六进制 0 1 2 3 4 5 6 7二进制 1000 1001 1010 1011 11

3、00 1101 1110 1111十进制 8 9 10 11 12 13 14 15十六进制 8 9 A B C D E F6 62.1.1进位计数制一、计算机中常用的进位制一、计算机中常用的进位制1.1.二进制二进制2.2.八进制八进制3.3.十六进制十六进制4.4.二二十进制十进制二、各种进位制之间的相互转换二、各种进位制之间的相互转换1.1.十进制整数转换为二进制整数十进制整数转换为二进制整数2.2.十进制小数转换为二进制小数十进制小数转换为二进制小数3.3.二进制整数转换为十进制整数二进制整数转换为十进制整数4.4.二进制小数转换为十进制小数二进制小数转换为十进制小数7 71、十进制表

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

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

6、示大小。2.比别的表数法多了一个至关重要的0,有了0就可以用位置表示大小。我们今天用的其他进制都是阿拉伯表数法的推广,都有一个014142.1.1进位计数制我们现在所使用的各种进位制都是在阿拉伯十进制的原理下衍生出来的,都有一个表示“零”的符号,都采用位置表示大小。所以,我们在掌握了进位制的原理后,可以将二、八、十六进位统一叙述一下。链接表格1515十进制二进制八进制十六进制二十六进制0 000000 00001 000111 00012 001022 00103 001133 00114 010044 01005 010155 01016 011066 01107 011177 01118

7、1000108 10009 1001119 100110 101012 A0001000011 101113 B0001000112 110014 C0001001013 110115 D0001001114 111016 E0001010015 111117 F000101011616二、各种进位制之间的相互转换第一组:二、八、十六进制转换简单一一对应第二组:二进制与十进制的相互转换(整数与小数的转换方法不同)17171、非十进制数转换成十进制数:、非十进制数转换成十进制数:二进制数转换:二进制数转换:八进制数转换:八进制数转换:十六进制转换:十六进制转换:.把各个非十进制数按权展开求和即可

8、。把各个非十进制数按权展开求和即可。按权相加法182、十进制数转换成非十进制数:、十进制数转换成非十进制数:转换成二进制:除基取余法转换成二进制:除基取余法 2 721322 62 32 1011011余数余数二进制整数高位二进制整数高位 二进制整数低位二进制整数低位0.7521.5021.0011整数整数例子:例子:27.7527.75二进制小数首位二进制小数首位二进制小数末位二进制小数末位结果结果:19转换成八进制转换成八进制:例子例子:1725.6875:1725.687517252152630888857230.687585.500084.000054结果结果:20转换成十六进制转换成

9、十六进制:例子例子:12345.6718751234577148316161616093030.6718751610.7500001612.000000AC结果结果:除基取余法213非十进制数之间的转换非十进制数之间的转换:八进制数转换成二进制数八进制数转换成二进制数:7 4 1 3 111 100 001 011二进制转换成八进制数二进制转换成八进制数:110 010 001 101 6 2 1 5直接对应法22十六进制数转换成二进制数十六进制数转换成二进制数:A 6 1 C 1010 0110 0001 1100 二进制数转换成十六进制数二进制数转换成十六进制数:1101 0101 111

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

11、计数中的从0开始的0、1、2、3、4、5、6、7来表述,而八进制的7以后的数,即7(8)+1(8)=10(8)。此时我们再回过头看一看二进制,三位二进制数可以表示八个连续不同的数值2525二、各种进位制之间的相互转换第一组:二、八、十六进制转换简单一一对应大小: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、

12、D、E、F与四位二进制数0000、0001、0010、0011、0100 2626二、各种进位制之间的相互转换第一组:二、八、十六进制转换简单一一对应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)272

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

14、Xn n2 2n n+X+Xn-1n-12 2n-1n-1+X+X3 32 23 3+X+X2 22 22 2+X+X1 12 21+1+X X0 02 20 0而减权定位法的核心是立刻判断出离所给的十进制数最近而又比自己小的权值是多少3030二、各种进位制之间的相互转换(2)除基取余法除基取余法比较抽象,我们先看个例子:一个十进制的整数116,每次除以2,它的余数我们可以断定,不是一就是零;就如书上例子:3131二、各种进位制之间的相互转换211602 5802 2912 1402 712 312 1120每次除2 每次的商每次的余数3232二、各种进位制之间的相互转换10111010010

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

16、各种进位制之间的相互转换2.十进制小数转换为二进制小数(1)减权定位法这种方法与十进制整数的减权定位法一样。(2)乘基取整法这种方法又有些抽象,我们看一看书上的公式。3636二、各种进位制之间的相互转换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。3737二、各种进位制之间的相互转换S=0.5X-1+0.2

17、5X-2+0.125X-3+X-m2-m现在举书上的例子:已知十进制小数是0.6350.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-m3838二、各种进位制之间的相互转换因为左边是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.5

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

19、二进制小数化为十进制小数,我们换一种写法:S=X-12-1+X-22-2+X-m2-m4242二、各种进位制之间的相互转换0.1011=1/2+0/22+1/23+1/240.1011=1/24+1/23+0/22+1/243432.1.2带符号数的表示QQ什么是真值?什么是真值?A A人们在日常生活中约定俗成用正负号表示的十进制人们在日常生活中约定俗成用正负号表示的十进制数,也就是我们写在纸上的数字数,也就是我们写在纸上的数字QQ什么是机器数?什么是机器数?A A一根电线用来表示正负号,只能是用有电或没电来一根电线用来表示正负号,只能是用有电或没电来表示。不象我们在纸上写数字的时候,有一个专

20、门表示。不象我们在纸上写数字的时候,有一个专门表示正负的表示正负的“+、-”-”号,使我号,使我们非常从们非常从1 1、2 2、3 3这这些数字中区分开来。些数字中区分开来。而而计计算机中只能用算机中只能用电电信号即表示数字又表示正信号即表示数字又表示正负负44442.1.2带符号数的表示因为带符号数本质上就是将最高位的电信号不因为带符号数本质上就是将最高位的电信号不当作数字内容而当作正负号内容,而每一内存单元当作数字内容而当作正负号内容,而每一内存单元或寄存器单元都是有固定的或寄存器单元都是有固定的bitbit位数的,所以符号位位数的,所以符号位就占了一位,表数的范围就有了变化。就占了一位,

21、表数的范围就有了变化。一、原码表示法一、原码表示法二、补码表示法二、补码表示法三、反码表示法三、反码表示法最高位表示正负号45452.1.2带符号数的表示一、原码表示法1.1.定点小数定点小数X X0 0X X1 1X X2 2X X3 3X X4 4.X Xn n一、原码表示法最高位表正负,其余是数的绝对值的大小。注意我们在日常生活中用笔写小数的时候,很轻松的在纸上点上小数点,但是小数点在计算机中一般是计算机默认在某一位上,用不着留下空间专门来存放这个表示点的信号的。46462.1.2带符号数的表示一、原码表示法X真值0X1X原码=1+|X|真值-1X0按照上面的公式的定义,大家看一看下面的

22、两个数000000001000000047472.1.2带符号数的表示一、原码表示法根据原码的定义,最高位根据原码的定义,最高位0 0代表代表+号,号,1 1代表代表-号,号,随后的是数的绝对值的大小随后的是数的绝对值的大小如果把最高位的如果把最高位的0 0、1 1看成正负号的话,则上面的两个机看成正负号的话,则上面的两个机器数都表示数值器数都表示数值0 01 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 048482.1.2带符号数的表示一、原码表示法这两个数按照定义:最高位表示符号,其余位表示绝对值,则:应该为+0和-0,所以原码表示法的机器数0

23、有两种表示法。例子:按照我们日常的书写习惯写就的真值X=+0.1011和X=-0.1011,求其在计算机内部的原码机器数49492.1.2带符号数的表示一、原码表示法 2.定点整数你看他与小数的位数标注有些不一样。X0X2nX原码=2n+|X|-2nX0X Xn n X X4 4X X3 3X X2 2X X1 1X X0 050502.1.2带符号数的表示一、原码表示法按照定义,我们看看这两个原码:0000010000这两个数是+0和-0,所以0有两种表示。51512.1.2带符号数的表示一、原码表示法3.原码表示法的特点:(1)0有两种表示(2)小数表示范围-1x1整数表示范围-2nx2n

24、(3)运算时符号位单独处理原码其实就是最高位使用0、1表示的符号位加上数的绝对值来表示的一种只有计算机才能使用而不是让人使用只的一种机器数。52522.1.2带符号数的表示一、原码表示法原码表示法的优点和缺点:1.原码最大的好处就是乘除法容易,只要把原码的绝对值部分进行运算而无须考虑符号。2.原码的缺点:怎么做减法?也就是说,具体这一次的原码运算究竟是做加法还是减法,是由运算符和两个运算数的正负号共同决定的,而不是很明确地立刻知道这个运算是什么?这大大影响计算机的运算速度。53532.1.2带符号数的表示一、补码表示法补码的由来:在小学时,我们总是先学加法,然后学减法,这至少说明减法比加法难,

25、而且现在我们在计算时,做减法也比做加法容易出错。于是人们就动脑筋,想办法把减法变成加法,大家看一看下面的例子:253176?54542.1.2带符号数的表示一、补码表示法这里面讨厌的就是借位,所以人们就想把借位要么去掉要么无需借位。999176823大家看看上面的式子,上面的式子仍旧是减法,但是上面的减法无需借位。我们甚至可以从右边向左边减,因为根本不需要借位。55552.1.2带符号数的表示一、补码表示法但这与253176有什么关系呢?我们用个技巧:253253+999+1 +823+1176 1077 1077 -1000 7756562.1.2带符号数的表示一、补码表示法我们把类似于10

26、00-176=824的824叫做-176的相对于1000的补码或补数。现在对于二进制,253-176=77176的二进制是10110000,253的二进制是111111011111110111111101 -1011000011111111+1 -1011000057572.1.2带符号数的表示一、补码表示法 大家有没有发现,二进制减法11111111 -10110000不仅无需进位,还可以有二进制自己的优点,即只需将10110000求一下反即可,而最后的和必须要减去100000000,因为内存和寄存器是由位数限制的,会把第九位1自然丢弃,客观上相当于自动减去10000000058580510

27、-5相当于平移5959补码加法的分析被加数与加数相加的所有可能情况有:1.正数加正数2.正数加负数3.负数加正数4.负数加负数6060补码加法的分析0 0?,?,?+0 0?,?,?0 0?,?,?+1 1?,?,?(1)(2)6161补码加法的分析1 1?,?,?+0 0?,?,?1 1?,?,?+1 1?,?,?(3)(4)62622.1.2带符号数的表示一、补码表示法1 12 23 34 45 56 67 78 8这是因为一个内存单元或寄存器单元的存存储位数是固定的,有些类似下面的里程表或倒带指示器63632.1.2带符号数的表示一、补码表示法64642.1.2带符号数的表示一、补码表示

28、法65652.1.2带符号数的表示一、补码表示法66662.1.2带符号数的表示一、补码表示法1.补码定义2.由真值、原码转换为补码3.由补码表示求原码、真值4.特点67672.1.2带符号数的表示一、补码表示法例如:253-176=771000+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=-7768682.1.2带符号数的表示一、补码表示法补码的出现就是解决减法

29、的问题,它的出现使得计算机中的加、减法运算非常简便,它不必判断数的正负,只要将符号位也参与运算,就能得到正确的结果。而且补码运算中再也没有减法,都是加法运算。我们再回过头看一看,符号位的由来,即某个模的差,这个差是有自己的含义的,不能单纯看成符号位,而其实它主要并不是起符号位的作用。69692.1.2带符号数的表示一、补码表示法1.补码定义(1)通式X补=M+X(mod M)X 0X1(2)定点小数的补码表示X补=2-|X|-1X0 X 0X2n(3)定点整数的补码表示X补=2n+1-|X|-2nX0 70702.1.2带符号数的表示一、补码表示法补码的补充说明:就象我们前面所演示给大家看的是

30、补码的发现其实是为了消灭减法,大家可以用这样一种思维去理解补码:补码其实就是专门针对负数而发明出来的,正数根本不需要什么补码,补码是一个减法的差,所以求一个数的补码就是做一个减法。71712.1.2带符号数的表示一、补码表示法负负数数区区域域正正数数区区域域126789101172722.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,73732.1.2带符号数的表示一、补

31、码表示法+74742.1.2带符号数的表示一、补码表示法从上面的图中,大家要明确,所有的数都要是一种编码,即被减数和减数都必须是补码或都必须是原码。针对补码,还有一点要注意的是,负数其实也就是减法,减法也就是负数。只要被减数和减数都保证是补码的话,化为补码的过程其实已经进行了求补的运算过程。也就是说,只要负数变成了补码,就已经有了消去负号的过程。75752.1.2带符号数的表示一、补码表示法我们现在来分析一下二进制补码的全部可能的情况:1.加法加法的所有情况中,被加数和加数如果是一正一负的话,结果不会超过表数范围。加法的情况下,出现超过表数范围的只有可能是要么是两个正数相加,要么是两个负数相加

32、的情况下。76762.1.2带符号数的表示一、补码表示法2.减法减法的情况下,与加法相同的是如果被减数与减数符号相同的情况下不会出现超过表数范围的情况。只有在被减数和减数符号不同的情况下,因为减号会改变减数的符号从而使减数的符号和被减数相同,而原来的减号变成了加号。这时有可能答案超出范围。77772.1.2带符号数的表示一、补码表示法加法的极端情况:(被加数和加数符号相同)1这个1自然丢失78782.1.2带符号数的表示一、补码表示法减法的极端情况:(被减数和减数符号不同)0110,10111000,1101 1000,11011001,10111101,11100010,001011自然丢失

33、79792.1.2带符号数的表示一、补码表示法可见,即使自然丢失最高位的0,也有可能答案不对,不对的详细情况,我们在学习加减法指令的时候在加以讨论。80802.1.2带符号数的表示一、补码表示法2.由真值、原码转换为补码(1)正数的补码与原码相同(2)负数的补码-原码符号不变,其余取反加一(3)手算法81812.1.2带符号数的表示一、补码表示法我们在日常生活中,最习惯见到的真值,而正数根本无须转为补码,或者说正数的补码与真值、原码是相同的。而负数则一定要变为补码。负数变为补码的方法有两种:1.先变为原码再变为补码。2.直接由真值变为原码,方法如下:真值一般由类似-0.625、-53的十进制方

34、式给出,我们先写出其正数的二进制方式。82822.1.2带符号数的表示一、补码表示法0.625的二进制值:0.11,将这个正的二进制值连符号位取反加一,即1.00+0.01=1.01,这个1.01就是真值十进制-0.625的二进制补码。类似的是:-53的绝对值二进制数是:11011,加上符号位0,得011011,连符号位求反加一:100101,即得-53的二进制补码:10010183832.1.2带符号数的表示一、补码表示法3.由补码表示求原码、真值也是取反加一84842.1.2带符号数的表示一、补码表示法4.特点(1)符号位既起指示正负号的作用,又参与运算(2)0只有一种表示法85852.1

35、.3数的定点表示与浮点表示一、定点表示法定点小数定点整数二、浮点表示法定点小数+定点整数86862.1.3数的定点表示与浮点表示一、定点表示法1.无符号定点整数2.带符号定点整数3.带符号定点小数87872.1.3数的定点表示与浮点表示一、定点表示法1.无符号定点整数最高位再也不用表示正负号了,最高位也表示数值的大小1 12 23 34 45 56 67 78 888882.1.3数的定点表示与浮点表示一、定点表示法2.带符号定点整数就是我们刚刚讲过的原码、补码、反码3.带符号定点小数就是我们刚刚讲过的原码、补码、反码89892.1.3数的定点表示与浮点表示一、定点表示法关于数的精度的问题:每

36、一块CPU、CPU内的寄存器、主存储器在它们的计算单元和存储单元中,在一步四则运算中,所作的数的位数是有限的和固定的,这就存在着数的精度的问题。我们先看一个例子:一个四位长度的存储单元如果在这个存储单元内存放的是二进制整数的话,这些整数的精度就是190902.1.3数的定点表示与浮点表示一、定点表示法而如果这个存储单元里存放的是定点小数的话,比如存放的是0.1011,大家知道,这个四位二进制小数的十进制数是:S=12-1+02-2+12-3+12-4S=10.5+00.125+10.0625+10.03125而四位二进制定点小数的最小表示数只能是1 10 01 11 191912.1.3数的定

37、点表示与浮点表示一、定点表示法换算成十进制就是0.03125,这就是精度。换言之,数是每次跳跃0.03125增大或减小这个大小的数的。在计算机科学中,专业术语称之为“离散值”,因为如果把这些二进制数标注在坐标轴上,大家看到的是一些有固定间隔的一些点。0 00 00 01 192922.1.3数的定点表示与浮点表示一、定点表示法计算机一次所能计算的二进制数的加减乘除的位数是有限制的,这就决定了一次计算是由精度限制的。我们知道,用来存储数的位数越长,数的精度越高,但是计算机一次所能运算的长度有限,所以要达到高精度的运算有以下几个途径:1.让计算机一次可以做更长的四则运算。2.用人工分解的办法编制程

38、序,把一个很长的二进制数的四则运算分解成很多步较短的二进制运算组合。93932.1.3数的定点表示与浮点表示一、定点表示法3.采用浮点计数法二进制浮点数就是二进制的科学计数法。科学计数法是有格式上的要求的,必须按照严格的格式要求来转化二进制数。94942.1.3数的定点表示与浮点表示一、浮点表示法浮点数由一个定点整数和一个定点小数组成。真值为:N=REM,R=21.浮点数的原理性(格式)就是科学计数法的二进制延伸。阶符数符E Ef fE EmmE Em-1m-1E E1 1MMf fMM1 1MM2 2MMn n阶码E尾数M95952.1.3数的定点表示与浮点表示一、浮点表示法我们中学时学过科

39、学计数法,当然那是十进制的。S=1.24351026,这样又简短有醒目。浮点数其实就是二进制的科学计数法。1.阶码的底就是进制2.阶码比例因子RE的指数值,用带符号定点整数表示,即前面所讲的二进制整数机器数的原码、补码、反码的表示。3.尾数M,用带符号定点小数表示,用规范化约定,比如:96962.1.3数的定点表示与浮点表示一、浮点表示法以二进制为例,规格化的尾数要求在:0.5|M|1之间,如果不在这之间,比如:十进制0.0625他的二进制是:0.0001,并不在0.5|M|1之间,但是我们可以用0.12-3来调整使其落在0.5|M|1之间。97972.1.3数的定点表示与浮点表示一、浮点表示

40、法2.移码(增码)X移=2m+X-2mX2m移码与补码的表示范围相同,只是在代码形式上符号位相反而已。举例:X=-(128)十进制=-(10000000)二进制上面的两个数分别是十进制和二进制的真值,移码为X=27+(-10000000)=0000000098982.1.3数的定点表示与浮点表示一、浮点表示法我们在看一看下面的表:X移=2m+X十进制十进制真值真值二进制二进制真值真值补码机补码机器数器数移码机移码机器数器数-128-128-100000100000000010000010000000000000000000000000-1-1-0000000000000101111111111

41、111111 1011111101111111 1+1+1+00000+0000000100100000000000001011000001000000101+127+127+011111+0111111111011111101111111 1111111111111111 199992.1.3数的定点表示与浮点表示一、浮点表示法可见,补码与移码的区别只是最高有效位相反,即符号位相反。3.表示范围与精度若浮点数的格式如下:E Ef fE EmmE Em-1m-1E E1 1MMf fMM1 1MM2 2MMn n阶码E(M+1位)尾数M(n+1位)1001002.1.3数的定点表示与浮点表示一

42、、浮点表示法如果阶码和尾数都用补码表示而不用移码表示的话,则:典型值典型值补码浮点数代码补码浮点数代码真值真值绝对值最大负数绝对值最大负数011011,1.00001.0000绝对值最小负数绝对值最小负数100100,1.10001.1000非零最小正数非零最小正数100100,0.10000.1000最大正数最大正数011011,0.110.111011012.1.3数的定点表示与浮点表示一、浮点表示法首先看一看阶码2X,不管X的值是正是负2X这个数不可能是负数。阶码0111是最大的正数,化为十进制数就是2m-1,那这个数乘以尾数的正数的最大值0.111即1-2-n就得到正数的最大浮点数值。

43、如果乘以负数的最小值-1的话,就得到最小的负数浮点数值。阶码的最小的正数是2-2m,这个数乘以最小的正数0.5(因为规范化表示0.5x1)1021022.1.3数的定点表示与浮点表示一、浮点表示法得最小正数0.52-2m。拿最小阶码乘以最小的负数尾数-0.5,得到最大的负数-0.52-2m。4.IEEE754标准浮点格式这样的标准就是规定了浮点数的格式,其实就是规定了浮点数的定点整数部分和浮点整数部分各占多少长度。1031032.1.3数的定点表示与浮点表示一、浮点表示法数符数符阶码阶码尾数尾数总位数总位数短实数短实数1 18 823233232长实数长实数1 1111152526464临时实

44、数临时实数 1 11515646480801041042.1.3数的定点表示与浮点表示一、浮点表示法代码格式为:32位31313030232322220 0s s0 0阶码8位(移码)尾数23位(实际24位数)数符1051052.2字符表示即将各个国家、民族的为文字进行数字化,以便于计算机记忆、识别、处理。其核心和办法就是怎样将文字用数字进行编号。而且大家都遵从这个编号。1061062.2字符表示2.2.1ASCII码ASCII(American Standard Code for Information Interchange)区分数字的2与字符的2的区别按字母的顺序和数字的天然顺序自然编码

45、其实只用了七位,最高位是0例如:I am 12 years old.对应的ASCII码是:49 20 61 6D 20 31 32 20 79 65 61 72 73 20 6F 6C 64 2E107107108108ascII表中的打印与控制字符1091092.2字符表示2.2.2汉字编码1.汉字输入码万码奔腾,输入码的本质就是把汉字的内在规律性发掘出来。把发现的规律性用数字编上号,而这些数字与国家标准的汉字编码意义对应,就可以2.汉字交换码3.汉字内部码1101102.3指令信息的表示2.3.1指令格式2.3.2常见寻址方式2.3.3指令类型1111112.3指令信息的表示2.3.1指令

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

47、定的逻辑顺序事先存储好的程序,所以自然而然就面临程序存在什么地方?数据又存在什么地方?的问题。操作码操作码OPOP地址码地址码A A1141142.3指令信息的表示2.3.1指令格式2.指令中的地址结构显地址与隐地址其实地址不存在什么隐地址还是什么显地址,他们之间的区别就是象我们在日常生活中经常讲的诸如“去上课”“回家”,无需加上你的目的地,大家会自然而然的认为你说的话中所应该去的地方。在计算机中,有些指令就是固定于某些1151152.3指令信息的表示2.3.1指令格式地址处,所以根本无须在指令中指出在什么地方,这就叫做隐地址。大家再考虑一下什么地方适合做隐地址?只有CPU内的寄存器和内存的情

48、况下,那一个存储部件更适合做隐地址的地方呢?当然只有CPU内的寄存器最适合。因为内存条是所有程序数据存放的场所,而且1161162.3指令信息的表示2.3.1指令格式内存条在不同的机器上有的买的多有的买的少,而CPU是计算机所必须有的,而且内存条在CPU的外面,远不如在CPU内部的寄存器的存储速度快,所以隐地址一般都是在CPU内的寄存器,而很少是主存储器我们现在按照指令格式的发展历史罗列一下指令的进化过程。1171172.3指令信息的表示2.3.1指令格式(1)三地址指令指令格式:指令功能:(A1)OP(A2)A3(PC)+nPC(2)二地址指令指令格式:指令功能:(A1)OP(A2)A1(P

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

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

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁