第2章 运算方法和运算器 (2)PPT讲稿.ppt

上传人:石*** 文档编号:49822113 上传时间:2022-10-11 格式:PPT 页数:90 大小:3.67MB
返回 下载 相关 举报
第2章 运算方法和运算器 (2)PPT讲稿.ppt_第1页
第1页 / 共90页
第2章 运算方法和运算器 (2)PPT讲稿.ppt_第2页
第2页 / 共90页
点击查看更多>>
资源描述

《第2章 运算方法和运算器 (2)PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第2章 运算方法和运算器 (2)PPT讲稿.ppt(90页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第2章 运算方法和运算器(2)第1页,共90页,编辑于2022年,星期一第第2 2章章 运算方法与运算器运算方法与运算器 2.1 2.1 数据与文字的表示方法数据与文字的表示方法 2.2 2.2 定点加法、减法运算定点加法、减法运算 2.3 2.3 定点乘法运算定点乘法运算 2.4 2.4 定点除法运算定点除法运算 2.5 2.5 定点运算器的组成定点运算器的组成 2.6 2.6 浮点运算方法和浮点运算器浮点运算方法和浮点运算器第2页,共90页,编辑于2022年,星期一2.1 数据与文字的表示方法n2.1.1 2.1.1 数据格式数据格式n2.1.2 2.1.2 数的机器码表示数的机器码表示n

2、2.1.3 2.1.3 字符与字符串的表示方法字符与字符串的表示方法n2.1.4 2.1.4 汉字的表示方法汉字的表示方法n2.1.5 2.1.5 校验码校验码第3页,共90页,编辑于2022年,星期一2.1.1 数据格式n在选择计算机数据的表示方式时在选择计算机数据的表示方式时,需要考虑如下因素需要考虑如下因素:-要表示的数的类型要表示的数的类型(小数、整数)小数、整数)-数值范围:一种数据类型所能表示的最大值和最小值。数值范围:一种数据类型所能表示的最大值和最小值。-数值精确度:实数所能表示的有效数字位数。数值精确度:实数所能表示的有效数字位数。数值范围和数值精度均与使用多少位二进制数值范

3、围和数值精度均与使用多少位二进制位数以及编码方式有关。位数以及编码方式有关。第4页,共90页,编辑于2022年,星期一n计算机中常用的数据表示格式有两种,一是计算机中常用的数据表示格式有两种,一是定点格式定点格式,二是,二是浮点格式浮点格式。n定点格式定点格式容许的数值范围有限,但要求的处理硬件容许的数值范围有限,但要求的处理硬件比较简单。比较简单。n浮点格式浮点格式容许的数值范围很大,但要求的处理硬件容许的数值范围很大,但要求的处理硬件比较复杂。比较复杂。2.1.1 数据格式第5页,共90页,编辑于2022年,星期一2.1.1 数据格式(续续1 1)1.定点数的表示方法定点数的表示方法 n定

4、点表示定点表示:约定机器中所有数据的小数点位置是固定不约定机器中所有数据的小数点位置是固定不变的。通常将数据表示成变的。通常将数据表示成纯小数纯小数或或纯整数纯整数。n定点数定点数xx0 x1x2xn 在定点机中表示如下在定点机中表示如下(x0表示符号表示符号位,位,0代表正号,代表正号,1代表负号代表负号)。由于约定在固定的位置,小数点就不再使用记号“.”来表示。第6页,共90页,编辑于2022年,星期一2.1.1 数据格式(续续2 2)n纯小数纯小数的表示范围为的表示范围为(x0 x1x2xn各位均为各位均为0时最时最小;各位均为小;各位均为1时最大时最大)0|1 2-n (2.1)n纯整

5、数纯整数的表示范围的表示范围 0|2n 1 (2.2)目目前计算机中多采用定点纯整数表示,因此将定点前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为数表示的运算简称为整数运算整数运算。二进制表示形式?二进制表示形式?第7页,共90页,编辑于2022年,星期一如何用定点数来表示非常大如何用定点数来表示非常大(e.g.210+33)的数和非常小的数和非常小(e.g.910-28)的数?的数?210+33=0.2 1034 910-28=0.9 10-27引入比例因子引入比例因子1034和和10-27 第8页,共90页,编辑于2022年,星期一2.1.1 数据格式(续续3 3)2.浮点数

6、的表示方法浮点数的表示方法 n浮点表示法:把一个数的有效数字和数的范围在计算机的浮点表示法:把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示。数的小数点位置随比例因一个存储单元中分别予以表示。数的小数点位置随比例因子的不同而在一定范围内自由浮动。子的不同而在一定范围内自由浮动。n任意一个十进制数任意一个十进制数 可以写成可以写成 10E.(2.3)n 在计算机中一个任意进制数在计算机中一个任意进制数 可以写成可以写成 e.m (2.4)m:尾数尾数,是一个纯小数。,是一个纯小数。e:比例因子的:比例因子的指数指数,称为浮点的指数,是一个整数。,称为浮点的指数,是一个整数。R:比

7、例因子的:比例因子的基数基数,对于二进计数值的机器是一个常数,对于二进计数值的机器是一个常数,一般规定一般规定 为为2,8或或16。第9页,共90页,编辑于2022年,星期一2.1.1 数据格式(续续4 4)n一个机器浮点数由一个机器浮点数由阶码阶码和和尾数尾数及其符号位组成及其符号位组成:用定点小数表示,给出用定点小数表示,给出有效数字的位数决定了有效数字的位数决定了浮点数的表示精度浮点数的表示精度 用整数形式表示,指明用整数形式表示,指明小数点在数据中的位置小数点在数据中的位置决定浮点数的表示范围决定浮点数的表示范围第10页,共90页,编辑于2022年,星期一2.1.1 数据格式(续续5

8、5)为便于软件移植,按照为便于软件移植,按照 IEEE754 的标准,的标准,32位浮位浮点数点数 和和64位浮点数的标准格式为位浮点数的标准格式为:阶码,:阶码,8位。阶符位。阶符采用隐含方式,即采用采用隐含方式,即采用移移码方式码方式来表示正负指数来表示正负指数:浮点数的符号位,:浮点数的符号位,1位,位,0表示正数,表示正数,1表示负数表示负数:尾数,:尾数,23位用小位用小数表示,小数点放数表示,小数点放在尾数域最前面在尾数域最前面第11页,共90页,编辑于2022年,星期一:阶码,:阶码,11位。阶符位。阶符采用隐含方式,即采用采用隐含方式,即采用移码方式移码方式来表示正负来表示正负

9、指数指数:浮点数的符号位,:浮点数的符号位,1位,位,0表示正数,表示正数,1表表示负数示负数:尾数,:尾数,52位用小位用小数表示,小数点放在数表示,小数点放在尾数域最前面尾数域最前面第12页,共90页,编辑于2022年,星期一2.1.1 数据格式(续续6 6)n移码阶码值大者其指数值也大。移码阶码值大者其指数值也大。指数真值指数真值e 与阶码与阶码之间之间的关系:的关系:e127,或者,或者e1023n一个规格化的一个规格化的32位浮点数位浮点数最高有效位应为最高有效位应为1,可以隐,可以隐藏,并且默认为隐藏在小数点的左边。藏,并且默认为隐藏在小数点的左边。的真值表示为:的真值表示为:(-

10、1)s(1.)2E-127 e127(2.5)n一个规格化的一个规格化的64位浮点数位浮点数的真值为的真值为 (-1)s(1.)2E-1023 e1023 (2.6)第13页,共90页,编辑于2022年,星期一2.1.1 数据格式(续续7 7)n浮点数的规格化表示。浮点数的规格化表示。为提高数据的表示精度,当尾数为提高数据的表示精度,当尾数的值不为的值不为 0 时,其绝对值应时,其绝对值应0.5。浮点数的尾数域的最高有效位应为浮点数的尾数域的最高有效位应为1,规格化的方法:,规格化的方法:修改阶码,同时左右移小数点的办法。修改阶码,同时左右移小数点的办法。如何进行浮点数的规格化?如何进行浮点数

11、的规格化?机器零如何表示?机器零如何表示?n机器零。机器零。当浮点数的尾数为当浮点数的尾数为 0,不论其阶码为何值,或者,不论其阶码为何值,或者当阶码的值遇到比它能表示的最小值还小时,不管其尾数当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零值。为何值,计算机都把该浮点数看成零值。E=0,M=0第14页,共90页,编辑于2022年,星期一n注意:注意:E值的范围是值的范围是0(0000 0000)255(1111 1111),但是),但是0和和255用作特殊用途。正常的用作特殊用途。正常的E值为值为1(0000 0001)254(1111 1110)之间的数。

12、)之间的数。E对对应的真值应的真值e的范围为的范围为-126+127。nE=0且且M=0,则,则X=(-1)S0,则表示,则表示x为为0nE=0且且M0,则,则X=DNRM(denormalized numbers,非规格化数),非规格化数)nE=255且且M=0,则,则X=(-1)S,即表示,即表示 nE=255且且M0,则,则X=NaN(not a number,不是一,不是一个数),用来通知异常情况。个数),用来通知异常情况。第15页,共90页,编辑于2022年,星期一n浮点数所表示的范围远比定点数大。浮点数所表示的范围远比定点数大。e.g.8bits,只考虑正值,只考虑正值定点小数:定

13、点小数:0127/128浮点数:阶符阶码浮点数:阶符阶码3位,尾符尾码位,尾符尾码5位,位,1/1287.5n 一台计算机中采用定点表示还是浮点表示,要根据计算机一台计算机中采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择,而单片机中多采用用定点、浮点表示,由使用者进行选择,而单片机中多采用定点表示。定点表示。2.1.1 数据格式(续续8 8)第16页,共90页,编辑于2022年,星期一 于是有于是有(1)s1.M2e 指数指数e阶码阶码1271000 0010011

14、1111100000011=(3)10包括隐藏位包括隐藏位1的尾数的尾数1.M 1.011011(1.011011)231011.011(11.375)10例例1:若浮点数若浮点数的二进制存储格式为的二进制存储格式为(41360000)16,求其,求其32位浮点数的十进制值。位浮点数的十进制值。2.1.1 数据格式(续续9 9)将十六进制数展开后,可得二进制数格式为:将十六进制数展开后,可得二进制数格式为:01000001001101100000000000000000S阶码(8位)尾数(23位)第17页,共90页,编辑于2022年,星期一例例2:将十进制数数将十进制数数20.59375转换成

15、转换成32位浮点数的二进制格式来存储。位浮点数的二进制格式来存储。首先分别将整数和分数部分转换成二进制数:20.5937510100.10011然后移动小数点,使其在第1、2位之间10100.10011 1.010010011 24e4S0E4+127=131M=010010011最后得到32位浮点数的二进制存储格式为:01000001101001001100000000000000(41A4C000)16第18页,共90页,编辑于2022年,星期一练习:1.若浮点数x的二进制存储格式为(41A18000)16,求其32位浮点数的十进制值?2.将十进制数数17.296875转换成位浮点数的二进

16、制格式来存储?第19页,共90页,编辑于2022年,星期一2.1.1 数据格式(续续1010)3.十进制数串的表示方法十进制数串的表示方法 n目前,大多数通用性较强的计算机都能直接处理十进制形目前,大多数通用性较强的计算机都能直接处理十进制形式表示的数据。十进制数串在计算机内主要有两种表示形式表示的数据。十进制数串在计算机内主要有两种表示形式:式:字符串形式字符串形式 n字符串形式字符串形式:一个字节存放一个十进制的数位:一个字节存放一个十进制的数位或符号位。为了指明这样一个数,需要给出该或符号位。为了指明这样一个数,需要给出该数在主存中的起始地址和位数数在主存中的起始地址和位数(串的长度串的

17、长度)。第20页,共90页,编辑于2022年,星期一2.1.1 数据格式(续续1111)压缩的十进制数串形式压缩的十进制数串形式n压缩的十进制数串形式压缩的十进制数串形式:一个字节存放两:一个字节存放两个十进制的数位。它比前一种形式节省存个十进制的数位。它比前一种形式节省存储空间,又便于直接完成十进制数的算术储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。运算,是广泛采用的较为理想的方法。第21页,共90页,编辑于2022年,星期一n用压缩的十进制数串表示一个数,要占用主存连续的多个字节。n每个数位占用半个字节(4bits),其值可用二十编码(BCD码)或数位的ASCII

18、码的低4位表示。符号位也占半个字节并放在最低数字位之后,其值选用四位编码中的六种冗余状态中的有关值,如用12(C)表示正号用13(D)表示负号。在这种表示中,规定数位加符号位之和必须为偶数,当和不为偶数时,应在最高数字位之前补一个0。此时,表示一个数要占用该偶数值的一半那么多个字节。第22页,共90页,编辑于2022年,星期一2.1.1 数据格式(续续1212)n例如例如 123 和和12分别被表示成:分别被表示成:n 压缩的十进制数串,需要给出它在主存中的首地址压缩的十进制数串,需要给出它在主存中的首地址和数字位个数和数字位个数(不含符号位不含符号位),又称位长,位长为,又称位长,位长为0的

19、的数其值为数其值为0。十进制数串表示法的优点是位长可变,。十进制数串表示法的优点是位长可变,许多机器中规定该长度从许多机器中规定该长度从0到到31,有的甚至更长。,有的甚至更长。123 C012D(123)(12)第23页,共90页,编辑于2022年,星期一二二-十进制数据表示十进制数据表示用四位二进制代码的不同组合来表示一个十进制用四位二进制代码的不同组合来表示一个十进制数码的编码方法,称为二数码的编码方法,称为二-十进制编码,也称十进制编码,也称BCD码码(Binary Coded Decimal)。表示的状态的个数与二进制位数的关系:表示的状态的个数与二进制位数的关系:2n=Nlog22

20、n=log2N所以所以 n=log2NN代表不同的状态个数,代表不同的状态个数,n n表示二进制代码的位数表示二进制代码的位数.第24页,共90页,编辑于2022年,星期一十进制 符号 有权码 无权码 8421242184-2-1余3码 格雷码1格雷码201234567890000000100100011010001010110011110001001000000010010001101001011110011011110111100000111011001010100101110101001100011110011010001010110011110001001101010111100000

21、00001001100100110111010101000110001000000010001100010101010110011000110011000第25页,共90页,编辑于2022年,星期一2.1.1 数据格式(续续1313)自定义数据表示自定义数据表示 n在传统的计算机体系结构中,用在传统的计算机体系结构中,用指令本身来说明指令本身来说明操作数据的类型。操作数据的类型。如定点加法表示操作数是纯小数如定点加法表示操作数是纯小数或纯整数;浮点加法表示操作数是浮点数;十进制或纯整数;浮点加法表示操作数是浮点数;十进制加法表示操作数是加法表示操作数是BCD数。由于操作数据类型不同,数。由于操

22、作数据类型不同,要设三种不同的指令要设三种不同的指令(操作码操作码)来加以区分。来加以区分。第26页,共90页,编辑于2022年,星期一2.1.1 数据格式(续续1414)n自定义数据表示用数据本身来说明数据类型。表自定义数据表示用数据本身来说明数据类型。表示形式有两种,即示形式有两种,即标志符数据表示标志符数据表示和和描述符数描述符数据表示据表示。第27页,共90页,编辑于2022年,星期一标志符数据表示n标志符数据表示标志符数据表示要求对每一个数据都附加标志符,要求对每一个数据都附加标志符,其格式如下:其格式如下:n其中标志符指明后面的数据所具有的类型,如整数、其中标志符指明后面的数据所具

23、有的类型,如整数、浮点数、浮点数、BCD数、字符串等。数、字符串等。n标志符数据表示的标志符数据表示的优点优点是能简化指令系统,便于程是能简化指令系统,便于程序调试和查错,缺点是数据区域占用的存储空间增序调试和查错,缺点是数据区域占用的存储空间增加,并使指令执行的速度减慢。加,并使指令执行的速度减慢。标识符标识符数据数据 第28页,共90页,编辑于2022年,星期一描述符数据表示 n描述符数据表示描述符数据表示主要用来描述多维结构的数据类型,主要用来描述多维结构的数据类型,如向量、矩阵、记录等。其格式为:如向量、矩阵、记录等。其格式为:描述符标志位描述符标志位特征标记特征标记数据块长度数据块长

24、度数据块起始地址数据块起始地址 指明这是一个指明这是一个数据描述符数据描述符 指明数据的指明数据的各种特征各种特征 指明数组中指明数组中元素个数元素个数 指明数据块指明数据块的首地址的首地址 第29页,共90页,编辑于2022年,星期一n标志符与描述符表示的区别是:标志符与描述符表示的区别是:标志符与每个数据相连,二者合起来存放在一个存标志符与每个数据相连,二者合起来存放在一个存储单元,而描述符要和数据分开存放。储单元,而描述符要和数据分开存放。描述符表示中,先访问描述符,后访问数据,至少描述符表示中,先访问描述符,后访问数据,至少增加一次访存。增加一次访存。描述符是程序的一部分,而不是数据的

25、一部分。描述符是程序的一部分,而不是数据的一部分。第30页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示n在计算机中对数据进行运算操作时,符号在计算机中对数据进行运算操作时,符号位如何表示呢?是否也同数值位一道参加位如何表示呢?是否也同数值位一道参加运算操作呢?运算操作呢?n 把符号位和数字位一起编码来表示相应的把符号位和数字位一起编码来表示相应的数的各种表示方法,如原码、补码、反码、数的各种表示方法,如原码、补码、反码、移码等。移码等。n 真值真值、机器数机器数或或机器码机器码。第31页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(续续1)1)1.原码表示法

26、原码表示法 n若若定点小数定点小数的原码形式为的原码形式为x0 x1x2 xn,则原码表示的定义是:,则原码表示的定义是:10 X原原 (2.7)11|01 式中式中X原原是机器数,是机器数,是真值是真值 第32页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(续续2)2)例如,例如,+0.1001,则,则 X原原 0.1001-0.1001,则,则 X原原 1.1001对于对于0,原码机器中往往有,原码机器中往往有“+0”、“-0”之分,之分,故有两种形式:故有两种形式:+0原原=0.000.0 -0原原 =1.000.0 第33页,共90页,编辑于2022年,星期一2.1.

27、2 数的机器码表示(续续3)3)n若若定点整数定点整数的原码形式为的原码形式为x0 x1x2 xn,则原码表示,则原码表示的定义是的定义是 2n 0 X原原 (2.8)2n 2n|0 2n第34页,共90页,编辑于2022年,星期一n 采用原码表示法简单易懂采用原码表示法简单易懂n 但它的最大缺点是加法运算复杂。但它的最大缺点是加法运算复杂。n 这是因为,当两数相加时,同号相加;如果是异号这是因为,当两数相加时,同号相加;如果是异号相减。而在进行减法时还要比较绝对值的大小,然相减。而在进行减法时还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。后大数减去小数,最后还要给结果选择符

28、号。n 为了解决这些矛盾,人们找到了为了解决这些矛盾,人们找到了补码表示法补码表示法。第35页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(续续4)4)2.补码表示法补码表示法 n先以钟表对时为例说明补码的概念。假设现在的标准时间为先以钟表对时为例说明补码的概念。假设现在的标准时间为4点正;点正;而有一只表已经而有一只表已经7点了,为了校准时间,可以点了,为了校准时间,可以将时针退将时针退 7-4=3 格;或者将时针向前拨格;或者将时针向前拨12-3=9格。格。这两种方法都能对准到这两种方法都能对准到4点,由此可以看出,减点,由此可以看出,减3和加和加9是等价的,就是说是等价

29、的,就是说9是是(-3)对对12的补码,可以用数学公的补码,可以用数学公式表示式表示 -3+9(mod12)mod 12的意思就是的意思就是12模数,这个模数,这个“模模”表示表示 被丢掉的数值。上式在数学上称为同余式。被丢掉的数值。上式在数学上称为同余式。第36页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(续续5)5)n上例中其所以上例中其所以7-3和和7+9(mod12)等价,等价,原因原因就是表就是表指针超过指针超过12时,将时,将12自动丢掉,最后得到自动丢掉,最后得到16-12=4。n从这里可以得到一个从这里可以得到一个启示:启示:启示启示负数用补码表示时,可以把

30、减法转化为加法。负数用补码表示时,可以把减法转化为加法。这样,这样,在计算机中实现起来就比较方便。在计算机中实现起来就比较方便。第37页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(续续6)6)n若若定点小数定点小数补码形式为补码形式为x0.x1x2 xn,则补码表示的定,则补码表示的定义是义是 10 X补补 (mod 2)(2.9)22|01n例如,例如,+0.1011,则,则 X补补 0.1011n-0.1011,则,则 X补补 10+n 10.0000-0.10111.0101n对于对于0,+0补补 -0补补 0.0000(mod 2)注意:注意:0的补码表示的补码表示

31、只有一种形式只有一种形式第38页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(续续7)7)n对对定点整数定点整数,补码表示的定义:,补码表示的定义:(2.10)2n 0 X补补 2n+1+2n+1-|0 2n (mod 2n+1)n采用补码表示法进行减法运算就比原码方便得多了。采用补码表示法进行减法运算就比原码方便得多了。n负数的求补问题。负数的求补问题。第39页,共90页,编辑于2022年,星期一补充:补码的性质补充:补码的性质 在补码表示法中,在补码表示法中,0的补码是唯一的,即的补码是唯一的,即 整数整数0 +0补补=-0补补=000 (mod 2n+1)小数小数0 +

32、0补补=-0补补=0.000 (mod 2)X补补=XSXn-1Xn-2X1X0 XS=0时,时,X为正数;为正数;XS=1时,时,X为负数。为负数。补码的表示范围是:补码的表示范围是:正整数正整数 2nX0 负整数负整数 0X-2n 负数的范围比正数范围大,即多表示一个数负数的范围比正数范围大,即多表示一个数-2n。-2n补补=2n+1-2n=2n=1000最高位是最高位是1代表两个含义:代表数的符号代表两个含义:代表数的符号Xs=1,表示,表示X是是负数;是数值位,表示数负数;是数值位,表示数X=2n第40页,共90页,编辑于2022年,星期一 整数整数X的补码可以写成这样的形式:的补码可

33、以写成这样的形式:X补补=2n+1XS+X,XS为符号位为符号位整数的真值和它的补码在数轴上的表示:整数的真值和它的补码在数轴上的表示:X为正时,为正时,X和和X补补在数轴上的位置相同;在数轴上的位置相同;X为负时,为负时,X补补比比X在数轴上右移了在数轴上右移了2n+1个数据长度。个数据长度。第41页,共90页,编辑于2022年,星期一补码与真值的关系补码与真值的关系设设X补补=XSXn-1Xn-2X1X0,由性质4可知,X补=2n+1Xs+X则则 X=X补补-2n+1XS =XsXn-1Xn-2X1X0-2n+1Xs=2nXs+Xn-1Xn-2X1X0-2n+1Xs=-2nXs+Xn-1X

34、n-2X1X0反过来,若反过来,若X=-2nXS+Xn-1Xn-2X1X0,则则X补补=2n+1XS+X =XSXn-1Xn-2X1X0第42页,共90页,编辑于2022年,星期一补码的一项算术运算特性补码的一项算术运算特性 X/2补补是把是把X补补中各位连同符号位一起中各位连同符号位一起都右移一位,符号位保持不变。都右移一位,符号位保持不变。由性质由性质6 6可可从从XX补补求得求得X/2X/2补补,推导如下:,推导如下:由性质由性质6得:得:X=-2nXS+Xn-1Xn-2X1X0X/2=-2X/2=-2n nX Xs s2 2-1-1+(X+(Xn-1n-1X Xn-2n-2X X1 1

35、X X0 0)/2)/2 =-2 =-2n nX Xs s+2+2n nX Xs s2 2-1-1+(X+(Xn-1n-1X Xn-2n-2X X1 1X X0 0)/2)/2 =-2 =-2n nX Xs s+(X+(Xs s X Xn-1n-1X Xn-2n-2X X1 1X X0 0)/2)/2根据补码定义:根据补码定义:X/2X/2补补 =2=2n+1n+1X Xs s+X/2X/2=2=2n+1n+1X Xs s-2-2n nX Xs s+(X+(Xs s X Xn-1n-1X Xn-2n-2X X1 1X X0 0)/2)/2=2=2n nX Xs s+(X+(Xs s X Xn-

36、1n-1X Xn-2n-2X X1 1X X0 0)/2)/2=X=Xs sX Xs s X Xn-1n-1X Xn-2n-2X X1 1(X(X0 0)第43页,共90页,编辑于2022年,星期一 补充:补充:负数补码的求法负数补码的求法当当0X-2n时(为负整数),符号位为时(为负整数),符号位为1,数,数值位是其真值值位是其真值X的数值位取反加的数值位取反加1。当当X为负小数时,则为负小数时,则X的补码是:符号位为的补码是:符号位为1,数值位是其真值数值位是其真值X 的数值位取反末位加的数值位取反末位加1。由由X的原码的原码X原求得补码原求得补码X补补:X补补等于等于X原原除符号位外,其

37、它位求反末位加除符号位外,其它位求反末位加1。由由X的补码的补码X补补求得原码求得原码X原原:X原原等于等于X补补除符号位外,其它位求反末位加除符号位外,其它位求反末位加1。第44页,共90页,编辑于2022年,星期一n证明如下:设整数证明如下:设整数X=Xn-1Xn-2X1X0n当当0X2n,为正数时,为正数时,X补补的符号位是的符号位是0,数值位是,数值位是X各各数位上的值,这与数位上的值,这与X的原码是相等的的原码是相等的X补补=X原原=0Xn-1Xn-2X1X0n当当0X-2n,为负数时,为负数时,X补补的符号位是的符号位是1,X原原=1Xn-1Xn-2X1X0=2n+Xn-1Xn-2

38、X1X0由原码定义可知:由原码定义可知:X原原=2n-X,X=2n-X原原=2n-(2n+Xn-1Xn-2X1X0)=-Xn-1Xn-2X1X0,那么那么X补补=2n+1+X=2n+1-Xn-1Xn-2X1X0=111(n+1个个1)+1-Xn-1Xn-2X1X0=1Xn-1Xn-2X1X0+1第45页,共90页,编辑于2022年,星期一补充:怎样由补充:怎样由X补补求求-X补补?设设X补补=XSXn-1Xn-2X1X0,求得,求得 -X补补=XsXn-1Xn-2X1X0+1 第46页,共90页,编辑于2022年,星期一证明:证明:X补补=2n+1Xs+X,X=X补补-2n+1Xs -X=-X

39、补补+2n+1Xs =2n+1Xs-XsXn-1Xn-2X1X0 =2nXs-Xn-1Xn-2X1X0Xs=0时时,-X=-Xn-1Xn-2X1X0 0根据补码定义有:根据补码定义有:-X补补=2n1-Xn-1Xn-2X1X0 =0 Xn-1Xn-2X1X0+1 =XsXn-1Xn-2X1X0+1还可以得到:还可以得到:X补补+-X补补 =XsXn-1Xn-2X1X0+XsXn-1Xn-2X1X0+1 =2n+1=0 (mod 2n+1)第48页,共90页,编辑于2022年,星期一机器负数机器负数:称:称-X补补为为X补补的机器负数。的机器负数。“求补求补”:由由X补补求求-X补补的过程称为对

40、的过程称为对X补补求补。求补。“求反求反”运算运算:把对把对X补补连同符号位在内的各位求反运算称为对连同符号位在内的各位求反运算称为对X补补“求反求反”运算,记为运算,记为X补补。对对X补补的的“求补求补”运算可看成对运算可看成对X补补“求反求反”运算再加运算再加1:-X补补=X补补+1,两者有以下关系两者有以下关系 X补补+X补补=2n+1-1=111(n个个1)第49页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(续续8)8)3.反码表示法反码表示法n所谓所谓反码反码,就是二进制的各位数码,就是二进制的各位数码 0 变为变为1,1变为变为0。也就是说,若也就是说,若 =1

41、,则反码为,则反码为 =0;若;若 =0,则反码则反码 =1。数值上面的一横表示反码的意思。数值上面的一横表示反码的意思。n在计算机中用触发器寄存数码,若触发器在计算机中用触发器寄存数码,若触发器Q端输出表示端输出表示原码,则其原码,则其Q端输出就是反码。由此可知,反码是端输出就是反码。由此可知,反码是容易得到的。容易得到的。第50页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(续续9)9)n对对定点小数定点小数,反码表示的定义为,反码表示的定义为 1 0 X 反反 (2.11)(2 2-n)01n其中其中n代表数的位数。代表数的位数。n在一些文献中,这种以在一些文献中,这种

42、以2为基数的反码又称为为基数的反码又称为1的补码。的补码。第51页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(续续10)10)对于对于正数正数 0.x1x2 xn 则则 X 反反0.x1x2 xn 对于对于负数负数 0.x1x2 xn 则有则有 X 反反1.x1x2 xn 对于对于0,有有+0 反反和和-0 反反之分之分:+0 反反0.00.0-0 反反1.11.1第52页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(续续11)11)比较反码与补码的公式比较反码与补码的公式 X 反反(2 2-n)X 补补2可得到可得到 X 补补 X 反反 2-n (2.1

43、2)通过通过反码求补码的重要公式反码求补码的重要公式。n一个负数变补码,其方法是符号位置一个负数变补码,其方法是符号位置1,其余各位,其余各位0变变1,1变变0,然后在最末位,然后在最末位(2-n)上加上加1。第53页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(续续12)12)n对对定点整数定点整数,反码表示的定义为,反码表示的定义为 2n 0 X 反反 (2.13)(2n+11)0 2n第54页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(续续13)13)4.移码表示法移码表示法 n移码移码通常用于表示浮点数的阶码。由于阶码是个通常用于表示浮点数的阶码。

44、由于阶码是个n位的整数,位的整数,所以假定定点整数移码形式为所以假定定点整数移码形式为 x x0 0 x x1 1x x2 2 x xn n时,对定点整数,时,对定点整数,移码的定义是移码的定义是 X 移移 2n 2n 2n (2.14)n若阶码数值部分为若阶码数值部分为5位,以位,以表示真值,则表示真值,则 X 移移 25 25 25第55页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(续续14)14)n例如,当正数例如,当正数10101 时,时,X 移移1,10101 当负数当负数10101 时,时,X 移移 25 25 101010,01011n 移码中的逗号不是小数点

45、,而是表示左边一位是符号移码中的逗号不是小数点,而是表示左边一位是符号位。位。n 移码中符号位移码中符号位0表示的规律与原码、补码、反码相反。表示的规律与原码、补码、反码相反。第56页,共90页,编辑于2022年,星期一真值真值补码补码移码移码-1281000000000000000-1271000000100000001.-1111111110111111100000000010000000+10000000110000001.+1270111111111111111第57页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(小结)(小结)n上面的数据四种机器表示法中:上面的数据

46、四种机器表示法中:n移码表示法主要用于表示浮点数的阶码,可以直接比移码表示法主要用于表示浮点数的阶码,可以直接比较大小。表示范围和补码相同,只有最高位相反。较大小。表示范围和补码相同,只有最高位相反。n由于补码表示对加减法运算十分方便,因此目前机器中广由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。泛采用补码表示法。n在这类机器中,数用补码表示,补码存储,补码运算。在这类机器中,数用补码表示,补码存储,补码运算。n有些机器,数用原码进行存储和传送,运算时改用补码。有些机器,数用原码进行存储和传送,运算时改用补码。n有些机器在做加减法时用补码运算,在做乘除法时用原码有些机器在

47、做加减法时用补码运算,在做乘除法时用原码运算。运算。第58页,共90页,编辑于2022年,星期一在数据的四种机器表示法中,在数据的四种机器表示法中,n正数的原码、反码、补码等于真值,只有负数才分正数的原码、反码、补码等于真值,只有负数才分别有不同的表示方法。补码和移码的别有不同的表示方法。补码和移码的0 0只有一种表只有一种表示方法,因此其表示范围相对于原码和反码多一示方法,因此其表示范围相对于原码和反码多一种,定点小数可表示种,定点小数可表示-1-1(移码没有小数形式),正(移码没有小数形式),正数可表示数可表示-2-2n n。2.1.2 数的机器码表示(小结)(小结)第59页,共90页,编

48、辑于2022年,星期一真值真值原码原码反码反码补码补码移码移码-1281000000000000000-12711111111100000001000000100000001.-110000001111111101111111101111111-010000000111111110000000010000000+000000000000000000000000010000000+100000001000000010000000110000001.+12701111111011111110111111111111111第60页,共90页,编辑于2022年,星期一无符号数的表示无符号数的表示n不需

49、要设置符号位,可以使用全部字长来不需要设置符号位,可以使用全部字长来表示数值大小表示数值大小n例如:例如:字长字长N=8时,时,取值范围:取值范围:0255(28-1););字长字长N=16时,时,取值范围:取值范围:065535(216-1)第61页,共90页,编辑于2022年,星期一同一代码的不同解释同一代码的不同解释n一个代码,赋予不同类型,其数值不一样。一个代码,赋予不同类型,其数值不一样。n例:计算机内一个二进制数例:计算机内一个二进制数1000 0001,若看作:若看作:无符号二进制数,其值为无符号二进制数,其值为129;8421BCD码,其值为码,其值为81 有符号整数,原码:有

50、符号整数,原码:-1;反码:反码:-126;补码:;补码:-127 有符号小数,原码:有符号小数,原码:-1/128;反码:反码:-126/128;补码:;补码:-127/128第62页,共90页,编辑于2022年,星期一2.1.2 数的机器码表示(例题)(例题)例例3:以定点整数为例,用数轴形式说明原码、反码、以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。补码表示范围和可能的数码组合情况。解解:例例4:将十进制真值将十进制真值(-127,-1,0,+1,+127)列表表示列表表示成二进制数及原码、反码、补码、移码值。成二进制数及原码、反码、补码、移码值。解解:第

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

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

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

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