运算方法和运算器 (2).ppt
《运算方法和运算器 (2).ppt》由会员分享,可在线阅读,更多相关《运算方法和运算器 (2).ppt(86页珍藏版)》请在三一办公上搜索。
1、第二章 运算方法和运算器,2.1 数据表示2.1.1 概述一、什么叫数据表示 是指能由计算机硬件直接识别的数据类型,如定点数、浮点数等。而所谓“由硬件直接识别”意味着某种数据类型可以用计算机硬件直接表示出来,并能由计算机指令直接调用该数据类型。二、为什么要研究数据表示问题(重要性)数据表示和指令系统是影响计算机的全局性的问题,也是计算机硬件和软件的接口(交界面)。了解计算机中数据表示是了解计算机各主要部件工作原理的必要基础。,三、数据表示的发展:数据表示即类型不是一开始就有多种多样,有一个随应用需要而发展的过程。,早期只有定点表示,表示数的范围很有限;为扩大数的表示范围而出现了浮点数表示;计算
2、机应用扩大到商业和事务处理,出现了字符串数据;堆栈数据表示;向量数据表示。一般介绍,数值型数据(能进行算术运算能得到明确数值概念的数字数据),非数值型数据(以数字数据形式进入计算机的声音、图像、文字等信息),二进制(定点、浮点),十进制(二-十进制),字符型,逻辑型,2.1.2 数值型数据的表示方法 一、数的机器码表示 真值和机器数 真值:正负号加绝对值表示的数值;机器数:因为“+”与“-”号在计算机中无法识别,故需要把数的符号数码化。在计算机中使用的连同数符一起数码化的数称为机器数。通常约定二进制数的最高位为符号位,“0”代表正号,“1”代表负号。常见的机器数有原码、反码、补码等。例如:11
3、01若为原码机器数,则其真值为 5,二、数据格式1、定点数(Fix-Point Number)含义:定点、浮点的“点”都指二进制数中的小数点。定点指小数点位置固定。小数点不占位,隐含。定点数分为定点小数(纯小数)和定点整数(纯整数)。,符号位,数值部分,小数点位置,符号位,数值部分,小数点位置,定点整数,定点小数,(1)定点数常见的三种机器码编码形式例:X=0.101101,Y=+101101 X原=1.101101,Y原=0101101 X反=1.010010,Y反=0101101X补=1.010011,Y补=0101101 注意:对正数它们都等于真值本身,而对负数各有不同的表示。(2)三种
4、编码的比较,不同码制中真值0的表示方法不同 对于真值0,原码和反码各有两种不同的表示形式,而补码只有唯一的一种表示形式。假设字长为8位,则:+0原=00000000-0原=10000000+0补=-0补=00000000+0反=00000000-0反=11111111,定点数的表示范围 原码、反码表示的正、负数范围相对零来说是对称的,但补码负数表示范围较正数表示范围宽,能多表示一个最负的数(绝对值最大的负数)。原因是原码和反码的真值0各有两种不同的表示形式,而补码只有唯一的一种表示形式。,定点数的表示数的范围(字长为n+1位)小数表数范围:原码(12-n)N 12-n补码 1 N 12-n 反
5、码(12-n)N 12-n 整数表数范围:原码(2n 1)N 2 n 1 补码 2 n N 2 n 1反码(2n1)N 2n1,特别注意补码的最小负数表示,习题:P.69 第1、2题1、写出下列各数的原码、反码、补码表示(用8位二进制数)。其中MSB是最高位(又是符号位),LSB是最低位。如果是小数,小数点在MSB之后;如果是整数,小数点在LSB之后。(1)35/64(2)23/128(3)127(4)用小数表示 1(5)用整数表示 1解答:(1)现将-35/64写成二进制真值-1000112-6=-0.100011原码:1.1000110 反码:1.0111001补码:1.0111010,(
6、2)先将23/128写成二进制真值为101112-7=0.0010111原码:0.0010111反码:0.0010111补码:0.0010111(3)先将-127写成二进制真值为-1111111原码:11111111(1,1111111)反码:10000000(1,0000000)补码:10000001(1,0000001)(4)用小数表示-1:原码与反码的小数表示中没有-1;补码表示的小数-1为1.0000000(5)用整数表示-1:原码为10000001;反码为11111110;补码为11111111。,2、设X补=a0.a1a2a6,其中ai取0或1,若要x0.5,求a0,a1,a2,a
7、6的取值。补充题:将下列数由小到大排序:16,1010.11B,25.3Q,X1补=10001101,1CH,X2反=01001101,0110.1001BCD,X3原=10101011,X4补=10111111,-X5补=10100101 解题要点:(1)统一各个数的表示形式,一般均表示为十进制(2)所需知识:了解B(binary)、Q(octa-)、H(hex)、BCD(Binary-Coded Decimal,简称BCD,即二-十进制编码)含义;各种进制数向十进制的转换;机器码求真值。以上十个数由小到大排序结果:X1,X3,X4,0110.1001BCD,1010.11B,16,25.3
8、Q,1CH,X2,X5,例.已知:机器字长16位,定点表示,尾数15位,数符1位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?解:(1)定点原码整数表示:最小负整数表示:1 111 111 111 111 111 最小负整数=-(215-1)10=(-32767)10 最大正整数表示:0 111 111 111 111 111 最大正整数=(215-1)10=(+32767)10(2)定点原码小数表示:最大正数值=(1-2-15)10=(+0.11111)2 15个1 最小负数值=-(1-2-15)10=(-0.111
9、11)2,2.1.2 数值型数据的表示方法,二、数据格式1、定点数(Fix-Point Number)2、浮点数(Float-Point Number):小数点位置可以自由浮动,数的范围和精度分别表示。浮点数的一般表示格式为:N=rEM 其中:r称为浮点数阶码的底,或尾数基数,一般r=2;E-阶码,一般为定点整数,决定浮点数的表示范围;M-尾数,一般为定点小数,决定浮点数的精度。,例:N=-0.000001011,可将其表示为以下的浮点数形式:N=2-3x(-0.001011)=2-4(-0.01011)=2-5(-0.1011)=(1)浮点数的规格化 目的:为了提高运算精度,充分利用尾数的有
10、效位数,同时保证浮点数表示形式唯一,通常采取浮点规格化形式。定义:规定尾数小数点后第一位,即尾数数值位的最高有效位(MSB)必须是非零有效数字,即尾数满足:1/2=|M|=1,例:将下列数表示成规格化的浮点数形式:11.101B,-10,16,7.DH解:11.101B=0.11101B22-10=-1010B=-0.101B24 16=10000B=0.1B25 7.DH=111.1101B=0.1111101B23,具体形式 当尾数M的基数为2时,规格化表示的尾数形式为:正数(原码、补码):0.1,其最大值为0.1111,最小值为0.1000,尾数的表示范围1/20时,MSB=1,当N0时
11、,MSB=0,即正数为0.1的形式,负数为1.0的形式.,浮点数与定点数的比较定点数:表示方法简单直观,但表示数的范围小.浮点数:表示的范围远比定点数大;运算过程中随时对中间结果作规格化,不易丢失有效数位,故提高了运算精度;但浮点运算较复杂例:假设机器中数据由8位二进制数表示(包括符号位),在定点机中,8位全部表示有效数字;在浮点机中,阶符阶码占3位,数符尾数占5位.(假设只考虑正数)则:定点机小数表示的数的范围即0-127/128浮点机表示的数的范围:2-11 0.0001-211 0.1111即1/1287.5,()浮点数格式 浮点数可分为以下两种格式:一般形式,Es,E1E2,.,Em,
12、Ms,M1M2,.,Mn,阶符,阶码,数符,尾数,例:写出二进制-110.0011在计算机中的浮点数形式.设阶码取4位补码,尾数是8位原码。解:-110.0011=-0.110001120011 浮点数形式为,0,011,1,1100011,阶符,尾符,浮点数的另外一种格式IEEE754标准 因为在IEEE754标准中浮点数的阶码采用了新的机器码移码,故先介绍移码的相关知识。移码(增码)定义 通常用于表示浮点数的阶码X为n位纯整数真值,其移码(n+1位,包括1位符号位)定义为:x移=偏移值+x 注意偏移值的选取,例如可以选其为2n。例:n=7,则X移=128+X,-128X127为什么叫做移码
13、、增码:,0 128 255,X移,X,-128 0 127,注意:移码的实质是将真值映像到一个正数域,故移码的大小可以直观反映真值的大小。,移码与真值、补码的对应关系,真值X,十进制 二进制 二进制 十进制,X移,X补,-128-10000000 1,0000000 00000000 0-127-01111111 1,0000001 00000001 1-1-00000001 1,1111111 01111111 127 0 00000000 0,0000000 10000000 128 1 00000001 0,0000001 10000001 129 127 01111111 0,111
14、1111 11111111 255,可见:对偏移值为2n的移码来说,同一数值的移码和补码除最高位之外,其他各位相同。,移码的性质:见下表,移码偏置值的选取 移码可以视作无符号数,对字长8位的移码,共有28个无符号数:00000000 0 00000001 1 01111111 27-1 10000000 27.11111110 28-2 11111111 28-1,为使阶码真值的正数和负数分布尽可能均匀,可选居于中间的两个数中的一个作为偏移值。,注意1)对没有明确指出偏移值的移码,应选其为2n(设字长为n+1位)(2)在IEEE754标准中,短浮点数的偏移值为27-1。,二、数据格式2、浮点数
15、(Float-Point Number)(2)浮点数格式浮点数的另外一种格式IEEE754标准,如果在不同的计算机当中,浮点数采用不同的基数、尾数和阶码的长度,则浮点数表示有较大差别,不利于软件在不同机器之间的移植。IEEE754标准就是1985年由IEEE提出的一个从系统结构角度支持浮点数表示的标准,当今流行的计算机几乎都采用这一标准。在IEEE754标准中,阶码用移码表示,尾数用原码表示。,IEEE754单精度即32位浮点数格式:,S E M,(-1)s X(1.M)X2E-127,有关IEEE754格式的例题请课后自习P.21【例1】、【例2】;P.27【例5】、【例6】作为数的表示范围
16、的例子自习,注意其中【例6】的格式并不完全等同于IEEE754标准。(3)浮点数表示的范围例:有一个字长为32位的浮点数,阶码10位,用移码表示;尾数22位,用补码表示;基数为2。请写出(1)最大数的二进制表示;(2)最小数的二进制表示;(3)规格化数所能表示的数的范围;(4)最接近于零的正规格化数与负规格化数。,解:设浮点数格式为X=2ES,首先写出阶码和尾数的范围:阶码为10位移码,则阶码的取值范围为-512+511;尾数是22位的补码(其中含符号位1位),则尾数最大正数值为Smax=1-2-21;尾数最小正数值为Smin=2-21。尾数最大负值为-2-21;尾数最小负值为-1。(1)最大
17、数的二进制表示:正数Xmax=2511(1-2-21)负数Xmax=2-512(-2-21)(2)最小数的二进制表示:正数Xmin=2-5122-21负数Xmin=2511(-1),(3)规格化数所能表示的数的范围:阶码取值范围还是-512+511,而规格化的浮点数尾数(22位补码)的取值范围为当X0 时:2-1 X 1-2-21当X0时:2-513 X 2511(1-2-21)当X0时:-2511 X-2-5122-1或-2511 X-2-512(2-1+2-21)(4)最接近于零的正规格化数与负规格化数。,例:将下列十进制数表示成浮点规格化数,阶码3位,用补码表示;尾数9位,用补码表示。各
18、包含1位符号位在内。,(1)27/64(2)-27/64解答(1)27/64=11011X2-6=0.11011X2-1表示成阶码(补码)、尾码(补码)为:1,11;0.11011000(2)-27/64=-11011X2-6=-0.11011000X2-1表示成如下形式为:1,11;1.00101000,2.1.2 数值数据的表示法三、数字编码以一种中间编码形式表示数(BCD码),1、编码目的:以机器能表示与识别的二进制形式存在,又比纯二进制数(pure binary)更接近日常所习惯的十进制数。2、BCD编码:Binary Coded Decimal,即二进制编码的十进制数,种类有很多,如
19、 Gray码、余3码、8421BCD码、EBCD码等。3、8421BCD码:用四位二进制数表示一位十进制数09。00000,00011,,10019,0001000010,0001000111,0001010115,0001011016。注意10以后的十进制数的表示。,一、出错的原因:1、元器件质量不可靠;2、线路工艺不过关;3、远距离传输带来的干扰等等,均会导致存取、加工、传输时出现0变成1或1变成0的错误。二、错误检测与纠正 方法有很多:常见的一种是对数据信息进行扩充,加入新代码,使之与原数据共同按某种规律编码后具有发现错误的能力,有些甚至具有指出具体的错误位置并使机器校正的能力。我们称之
20、为“校验码”(check code)。几种常用的校验码包括:奇偶校验码、CRC码、海明码等。,2.1.3 校验码(check code),三、奇偶校验码 广泛用于主存的读写校验或ASCII码字符传送过程中的检查。1、编码方式:在n位有效信息位上加一个二进制位作为校验位P,构成n+1位的奇偶校验码。校验位P的位置可以在有效信息位的最高位之前,也可在有效信息位的最高位之后。奇校验(odd):编码中含“1”的个数(连同校验位)共有奇数个“1”;偶校验(even):编码中含“1”的个数(连同校验位)共有偶数个“1”。例:信息编码为:10001000B,1 0 0 0 1 0 0 0 1,1 0 0 0
21、 1 0 0 0 0,奇校验位,偶校验位,若采用偶校验,则校验位P可由下式确定:Peven=D0 D1 D2 D3 D4 D5 D6 D7(2-1)若D7-D0中有偶数个1,则“偶形成”=0 若D7-D0中有奇数个1,则“偶形成”=1若采用奇校验,则校验位P可由下式确定:Podd=Peven(2-2)根据式(2-1)和(2-2),可得到9位奇偶校验位P的形成电路,如下图示。,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,偶校验位形成,D7D6,D5D4,D3D2,D1D0,奇校验位形成,奇偶校验位P的形成电路,Peven,Podd,+,+,+,+,+,+,+,+,+,偶校错,校验
22、位,D7D6,D5D4,D3D2,D1D0,奇校错,奇偶校验位电路,Peven,2、奇偶校验码的校验:8位代码与1位校验位同时送入偶校验逻辑电路.若“偶校错”=0,表明数据无奇数个错,可视为正确.,3、主存读写过程中的奇偶校验 假设CPU准备写入主存某单元的数据为01010101,若采用奇校验,经过奇偶校验电路,形成奇偶校验位,实际写入贮存的9位校验码为101010101(最高位为校验位)。从主存单元读出的9位信息首先送入奇偶校验电路,若9位信息中“1”的个数为奇数个,表示读出信息正确,将校验位去掉后的8位数据送CPU;否则,表示读出信息不正确,向CPU发出奇偶校验出错的中断请求信号。,CPU
23、,奇偶校验电路,主存,8位,9位,8位,9位,2.2定点数加减运算 2.2.1 补码加法运算1.补码加法的公式:x补+y补=x+y补(mod 2)2.补码加法的特点:符号位作为数的一部分一起参加运算;在模2的意义下相加,超过2的进位要丢掉.例:x=+0.1001,y=-0.0101,求x+y解:x补=0.1001,y补=1.1011 x补 0.1 0 0 1 y补 1.1 0 1 1 x+y补 1 0.0 1 0 0 故:x+y=0.0100,+,进位超过2,丢掉,补码减法运算1.补码减法的公式:x-y补=x补-y补=x补+-y补2.补码减法的特点:减法运算可以化为加法,可和常规加法运算使用
24、同一加法器电路,从而简化计算机的设计.3.从y补求-y补的法则是:对y补包括符号位:“求反且末位加1”,即 可得-y补.例:x=+0.1101,y=+0.0110,求x-y=?解:x补=0.1101,y补=0.0110,-y补=y补+2-4=1.1001+0.0001=1.1010,x-y补=x补+-y补=10.0 1 1 1=0.0111,所以 x-y=+0.0111,溢出及其检测1.定义:运算的结果超出机器所能表示的数据范围。分上溢和下溢。例:x=+0.1011,y=+0.1001,求x+y.解:x补=0.1011,y补=0.1001 x补 0.1 0 1 1 y补 0.1 0 0 1,+
25、,x+y补 1.0 1 0 0,注意:补码X补与真值X的转换。当X=0时,X补=X;当X0时,X补=M+X,注意:只有当两数同号时,才会出现溢出。,2、几种检测方法(1)单符号位法1(根据两个操作数的符号与结果的符号判别溢出):当操作数中的加数与被加数符号相同时,若结果的符号与操作数的符号不一致,表示溢出;否则,表示无溢出.设X的符号位为Xf,Y的符号为Yf,运算结果的符号为Sf,则溢出逻辑表达式:V=XfYfSf+XfYfSf V=0无溢出;V=1有溢出,(2)单符号位法2(进位判断法):当最高有效位产生进位而符号位无进位时,产生上溢;当最高有效位无进位而符号位有进位时,产生下溢.其逻辑表达
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运算方法和运算器 2 运算 方法 运算器

链接地址:https://www.31ppt.com/p-6350462.html