版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第2章 数据的机器级表示和运算,2,本章结构,3,2.1 数制及转换,1、进位计数制 *进位计数制:又称进制或数制,是用一组固定的符号和统一的规则来表示数值的方法。有数码、基数和位权3个基本参数,*常用的4种进制:,*R进制数表示:(N )R=(kn-1k1k0.k-1k-2k-m)R= 其中,ki0,1,(R-1),4,2、R进制数转换成十进制数,例1(101.01)2=(122+120+12-2)10=(5.25)10 (3A.C)16 =(3161+10160+1216-1)10=(58.75)10,3、十进制数转换成R进制数 (1)十进制数整数转换成R进制数整数,例2,*转换规则:
2、按位权展开,*整数转换规则:除基取余、上右下左,5,(2)十进制数小数转换成R进制数小数,整数部分 0.68758 = 5.5 5 (最高位) 0.5 8 = 4.0 4 (最低位) (0.6875)10 = (0.54)8,例3将(0.6875)10分别转换成二、八进制数,(3)十进制数转换成R进制数 *转换规则:整数部分、小数部分分别转换后再合并,练习1(19.6875)10=(X)2=(Y)8,X=?Y=?,*小数转换规则:乘基取整、上左下右,6,4、二、八、十六进制数相互转换 *隐含规律:2=21,8=23,16=24,(1)二进制、八进制数相互转换 *转换规则:从小数点向两边分别转换
3、; 3个二进制数位(不够时补零)等价于1个八进制数位,例4(13.724)8=(001 011.111 010 100)2=(1011.1110101)2 (10011.01)2=(010 011.010)2=(23.2)8,(2)二进制、十六进制数相互转换 *转换规则:从小数点向两边分别转换; 4个二进制数位(不够时补零)等价于1个十六进制数位,例5(2B.E)16=(0010 1011.1110)2=(101011.111)2 (11001.11)2=(0001 1001.1100)2=(19.C)16,7,2.2 数值数据的机器表示,计算机用编码(数据)表示信息:,计算机只支持最常用(最
4、基本)的数据类型:,数据表示计算机硬件能够直接识别和引用的数据类型,应用数据数据表示的转换:程序员或编译程序完成,8,一、机器数及其编码,*数值数据: 组成由符号、小数点及数值构成,可缺省符号及小数点 运算符号与数值分开运算;加减法需先比较大小,*机器数:符号数字化的数,通常0/1表示+/-; 如(+101)2(0101)2、(-0.101)2(-.101)2(1.101)2 真值带“+”或“-”符号的数,*机器数的运算方法: 采用手工运算方法,硬件实现很不方便; 如(+x)+(-y)时,先求x-y、再求结果符号、最后求x-y或y-x 采用新运算方法,便于硬件实现(如符号与数值一起运算) 必须
5、使用新的编码方法!,*机器数的编码方法:原码、补码、反码、移码等,9,1、原码表示法(原码编码方法) *基本思想:用0/1表示符号+/-,数值位为真值的绝对值,*纯整数原码定义: 设X=xn-2x0,xi=0或1,则X原=xn-1xn-2x0,,例1+1101原=01101;-1101原=11101,例2设X原=1101,则X=-101,例3设+X原=0110,则-X原=1110; +X原=0000,则-X原=1000,即+0原-0原,练习1若X=-01000,X原=? 若X原=101010,X=?,10,*纯小数原码定义: 设X=0.x-1x-(n-1),则X原=x0.x-1x-(n-1),
6、例4+0.1001原=0.1001;-0.1001原=1.1001,例5X原=1.01,则X=-0.01,*原码的特性:,X与X原关系 X原与X表示值的范围相同, +0原-0原;,运算方法符号与数值分开运算(与手工运算一致) 适合于乘除法,加减法较复杂,11,2、补码表示法 *目标:实现符号与数值一起运算,*有模运算:运算时只计量小于“模”的部分,多余部分被丢弃 模计量系统的计数范围;,(1)有模运算与补数 示例将时针从10点拨向7点,有两种拨法: 倒拨10-3=7;顺拨10+9=7+12=7,*补数:若a、b、M满足a+b=M,称a、b互为模M的补数,同余若A、B、M满足A=B+kM (k为
7、有符号整数), 则记 AB (mod M),称B和A为模M的同余,运算特征c-a = c-(M-b) = c+b (mod M), 即减去一个数等价于加上这个数的补数 可将减法运算转化为加法运算,12,*数据编码思路:使数值部分无减法运算 负数用其正补数表示,正补数可用模加负数求得; 例 -48 (mod 12),即8=12+(-4) 正数用其本身表示,即正数的同余数 例 88 (mod 12),即8=8+12 (mod 12),(2)补码定义 *基本思想:设模为M,真值X的X补=M+X (mod M),*纯整数补码定义: 设X=xn-2x0,xi=0或1,则X补=xn-1xn-2x0,即,说
8、明因X连同符号位共n位,故模为2n,13,例6+0001补=00001,-0001补=10 0000-0001=11111 +1111补=01111,-1111补=10 0000-1111=10001,练习2若X=-01000、Y=+01000,X补=?Y补=?,例7n=5、X0时,最大X补=01111,Xmax=24-1=+15 X0时,最小X补=10000,Xmin=-24 =-16,+0000补=-0000补=00000 数0的补码惟一,正数补码最高位(符号位)为0,负数最高位为1,补码表示数的个数比原码多1个,14,*定点纯小数补码定义: 设X=0.x-1x-(n-1),则X补=x0.
9、x-1x-(n-1),例8+0.1011补=0.1011 -0.1011补=2-0.1011=10.0000-0.1011=1.0101,说明因X的计量范围为-1+2-(n-1)+1-2-(n-1),故模为2,15,(3)补码的特性 *X与X补的关系:,设纯整数X=+xn-2x0,Y补=0yn-2y0,xi和yi=0或1 则X补 = X = 0 xn-2x0 Y = Y补 = + yn-2y0,纯小数真值与补码的关系上述方法同样适用,自行推导,16, XX补 若X为正数,改符号位为0,其余各位不变; 若X为负数,改符号位为1,其余各位取反、末位加1,例9X=+0101,X补=,X=-0101,
10、X补=,0 0101;,1 1011, X补X 若X补最高位为0,改其为正号,其余各位不变; 若X补最高位为1,改其为负号,其余各位取反、末位加1,例10X补=0 0101,X=+ 0101;,X补=1 1011,X=,- 0101,17, X原X补 若X原最高位为0,X补=X原; 若X原最高位为1,X补=X原各数值位取反、末位加1,例11 X原=0 0101,X补=,0 0101;,X原=1 0101,X补=,1 1011, X补X原 若X补最高位为0,X原=X补; 若X补最高位为1,X原=X补各数值位取反、末位加1,例12 X补=0 0101,X原=,0 0101;,X补=1 0101,X
11、原=,1 1011,18,*X补与-X补的关系:,X补-X补X补的各位取反(含符号位)、末位加1 -X补X补-X补的各位取反(含符号位)、末位加1,例13X补=1 0110,-X补= 0 1001+1,= 0 1010,练习3若X=-01001,-X补=? 若X补=101010,-X补=?-X=?,19,0 01001,0 01001,1 01010,1 10110,+ 01010,0 01010,- 01110,1 10010,+ 01110,1 10010,- 10010,0 10010,0 10101,0 10101,1 10111,1 01001,20,3、反码表示法 *目标:作为原码
12、与补码相互转换时的一种过渡编码,*纯整数反码定义: 设X=xn-2x0,xi=0或1,取模=2n-1,则,*纯小数反码定义: 设X=0.x-1x-(n-1),xi=0或1,模=2-2-(n-1),则,例14+1101反=01101,-1101反=10010,例15+0.1101反=0.1101,-0.1101反=1.0010,21,*反码与补码关系: 若X为正数,X补=X反;若X为负数,X补=X反+1,原码、补码、反码比较: 机器数的最高位均为符号位(0/1表示正/负);,+0补=-0补,补码比原码、反码多表示一个负数,若真值X为正数,X原=X补=X反; 若真值X为负数,X补=X反+1, X反
13、=X原各位求反(符号位除外);,22,4、移码表示法 *目标:实现符号与数值一起编码,*纯整数移码定义: 设X=xn-2x0,其中xi=0或1,取模=2n,则 X移 = 2n-1+X (mod 2n) = 2n-1 + X -2n-1X2n-1,例16-111移=0001,-001移=0111,000移=1000, +001移=1001,+111移=1111,-1000移=0000,*移码的特性: 数在数轴上为连续编码(无符号数),便于比较大小; X移=X补符号位取反、其余各位不变,23,二、数值数据的表示方法,24,3、数值数据的表示方法,*符号问题处理: 有符号数用数字表示符号, 无符号数
14、符号位置为数值;,*进制问题处理:只支持二进制方式;,*小数点问题处理: 点的表示用隐含方式表示;,位置表示约定不同数据类型的位置不同,25,*数码长度问题处理: 不同数据类型数码长度固定; 便于定长方式处理 同一数据类型可有几种长度; 可提高处理及存储效率,*运算问题处理: 运算方法按数据表示的格式及编码进行相应运算;,数值数据的处理方法:包括数据的表示和数据的操作方法,数据类型区分由指令操作码区分;,溢出处理硬件检测并发出通知,由软件处理,26,三、数的定点表示,1、定点表示方法 指约定数据中隐含的小数点位置固定不变。,*定点数的表示范围: (设数码长度为n位),*定点表示形式:有约定在数
15、值最低位之后和最高位之前两种,2、定点数的表示 采用定点表示格式的数称为定点数,通常有几种数码长度。,27,四、数的浮点表示,概念:尾数-M,阶E,尾数的基RM,阶的基RE,1、浮点表示方法 指约定数据中隐含的小数点位置是可变的。,表示尾数用定点纯小数表示,阶用定点整数表示,*浮点表示形式:由尾数和阶组成 格式,28,*浮点数的表示范围与精度: 假设尾数及阶的基均为2,数值长度分别为m位及e位,2、浮点数的表示 采用浮点表示格式的数称为浮点数,通常有几种数码长度。,例1若浮点表示格式中m=10、e=4,尾数及阶均为补码编码方式,写出(-54)10的机器码。,解:(-54)10=(-110110
16、)2=-0.110112+110,,浮点数机器码为 00110 10010100000,影响因素e决定了范围、m决定了精度,29,例2若浮点表示格式中尾数为8位(含1位符号位)、阶为5位(含1位符号位),写出下列实数的浮点数及机器码。,例3浮点表示格式同例2,写出下列机器码的浮点数。,1 0010 1 1011100,0 1110 0 1011100,1 0101 1 0101001,-0.10110102-110,+0.101112-1011,-0.00110002+1101,30,3、浮点数的规格化 *目的:在现有的浮点数表示格式中,使表示精度最大化。,例4若浮点表示格式中m=3、e=3、
17、尾数和阶均为原码编码方式,不同表示方法的浮点数精度不同: +101.1=0.101123=0.0101124=0.00101125,*规格化数的要求:尾数真值的最高位为1,即 |M|1,*规格化的操作: 左规尾数左移一位,阶码减一; 右规尾数右移一位,阶码加一。 应用非规格化数规格化数,可能需多次规格化操作,31,例5若浮点数尾数及阶的基均为2,回答下列问题:,*规格化数的表示范围及数码特征:,原码尾数最高数值位为1;,补码尾数最高数值位与符号相反 便于硬件实现,左规3次 -0.100002-001,右规4次 +0.101112+110,1111 0000,1111 110000,0111 1
18、11111,0000 1111,101111 100000,32,4、IEEE 754标准,*表示格式及数码长度: 有单精度、双精度两种格式及长度,*编码方式: 数制M和E均采用二进制方式(即RM=RE=2);,码制M为原码编码的定点纯小数(改进了定点位置), E为移码编码的定点整数(改进了移码值),33,*阶的码制:采用的是余127码和余1023码 余X码偏移值为X的移码称为余X码, 标准移码:真值=E-28-1=E-128, 余127码: 真值=E-(28-1-1)=E-127;,*尾数的码制: (以单精度格式为例) 支持非规格化尾数和规格化尾数两种方式;,规 格 化尾数规格化的尾数真值=
19、1.m-2m-24, 机器码M=m-2m-24,尾数精度=24位,阶的范围1E254,而0和255另作他用, 即-126阶的真值127,非规格化尾数尾数真值=0.m-1m-23, 机器码M=m-1m-23,尾数精度=23位;,34,*IEEE 754标准浮点表示的特征: (以单精度格式为例),35,例6求IEEE 754单精度码为(CC968000)16的浮点数的真值N,例5求(-11/128)10的IEEE 754单精度规格化数的机器码,解(-11/128)10 =( -1011)22-7 =(-0.1011)22-3 =(-1.011)22-4=(-1.011)22123-127,解(CC
20、968000)16=1 10011001 00101101000000000000000 N为负数,浮点数为规格化数(110011001254);,机器码为:,阶=(10011001)2(01111111)2 =(00011010)2=(26)10 尾数=(1.00101101)2 =(1.17578125)10 N=(1)11-1数值数据的表示小结:表示格式有定点和浮点两种,编码方式可选择与运算器对应的机器数编码,数码长度总是固定的,36,2.3 非数值数据的数据表示,1.二进制编码的十进制数 2.字符及字符串编码 3.逻辑数据的表示,37
21、,一、十进制数编码,*BCD码(Binary Coded Dicimal):又称二-十进制编码,是指用4位二进制编码表示1位十进制数位的编码方式。,*BCD码种类:分有权码和无权码两种,最常用的是8421码。,BCD码缺省指8421码(特殊声明除外)!,*十进制数的编码方法: 对各数位按序用BCD码编码,符号编码放在最后; 用特定编码表示符号(如1100和1101表示正和负)。,例 +427表示为0100 0010 0111 1100 -123表示为0001 0010 0011 1101,38,二、字符及字符串编码,1、字符编码 *字符编码:字符在字符集中惟一的数字化代码, 表示字符在字符集中
22、的序号或特征号,*字符编码的类型:有输入码、内码、交换码、字模码4种,与输入法、字符集大小有关,与字体、字号大小有关,字符交换时的编码(序号), 仅与字符集大小有关,字符存储时的编码(数据表示), 与字符集大小、存储字长有关,39,*有关字符编码的约定: 字符编码均指交换码的编码! 字符数据均指内码的编码!,*常见字符编码(交换码)种类:,40,2、字符串编码 *字符串特性: 由多个字符构成; 所含字符数不固定。,*字符串编码方法: 由各个字符编码组成; 通过特定编码标志字符串的结束,结束编码放在最后 字符集必须包含该字符(如ASCII码中编码为0的字符),例C语言中字符串“am”可编码为11
23、00001 1101101 000000,41,三、逻辑数据的表示 *数学特征:值域真、假; 运算与(AND)、或(OR)、非(NOT)等,*运算处理方法:可采用所有位同时按位进行与/或/非运算 可获得最大性能一位操作时,软件负责准备数据,*数据的表示方法: 数码长度1位n位(n为MEM字长倍数);以提高存储效率,表示格式n个逻辑数据捆绑表示,每个逻辑数据占1位;,例28位逻辑数A和B如何实现第0位的OR操作(结果在A中)?,编码方式各位独立编码,1/0可表示真/假,解:步骤为 C=B AND 01H; A=A OR C,42,附:数据的表示小结,数据的表示方法: 有表示格式、编码方式、数码长
24、度3个方面, 而数码长度只与数据的实例有关、与数据的类型无关,数据的表示方法实例:,43,MEM字长的确定思路: (系统结构研究的内容) MEM字长=min使用频率很高的各种数据的数码长度 通常,MEM字长=字节(1B=8bit,ASCII码字符的使用频率很高),机器字长的确定思路: (系统结构研究的内容) 机器字长=max使用频率很高的各种定点数的数码长度,数据的表示实现: 编译程序将语言数据类型转换成机器数据的表示形式; 指令操作码 指明机器数据的表示类型; 运算器必须具有相应功能处理不同类型的机器数据!,44,2.4 定点数的运算及实现,一、移位运算,1、移位及移位运算 *移位:数值相对
25、于某个位置的移动 例20.0m=2000.0cm,称20相对于小数点左移了2位,*移位操作:有左移、右移2种类型; 二进制数左移或右移n位相当于乘以或除以2n,*移位运算:对计算机中机器数的移位操作 运算种类对有符号数,有算术左移、算术右移; 对无符号数,有逻辑左移、逻辑右移,数据定长表示 符号数字化,运算参数操作数、移动位数,45,2、逻辑移位运算 *操作数类型:无符号机器数,例1某REG内容为00111001,逻辑移位运算结果如下:,*运算规则: 机器数整体移位,移出的数丢弃,出现的空位补0,丢弃部分,丢弃部分,0 0 1 1 1 0 0 1,0 0 1 1 1 0 0 1,*运算实现方法
26、:通常用移位寄存器实现,练习若(REG)=11001001,逻辑左移1位再右移1位的结果?,*溢出判断方法:左移、移丢数码为1时运算溢出,46,3、算术移位运算 *操作数类型:有符号机器数(原码、补码、反码等),*运算规则:符号位不变,数值部分整体移位,空位添补规则如下表(根据编码方式的数学特征添补),补码特性2X补=2X补及 X补=XS*2n-1+ X补,00100 00100 00100,00001 00001 00001,10100 10001,11100 11111,11011 11110,47,*运算实现方法:通常用移位寄存器实现,*溢出判断方法:左移移丢数值1时溢出,右移移丢数值1
27、仅影响精度,原码左移、移丢数码为1时溢出; 补/反码左移、移丢与符号相反的数码时溢出,01000010(+66) 00000100(+4),00010000(+16) 00000001(+1) 00000000(+0),11000010(-66) 10000100(-4),10010000(-16) 10000001(-1) 10000000(-0),10111110(-66) 11111100(-4),11101111(-17) 11111110(-2) 11111111(-1),10111101(-66) 11111011(-4),11101111(-16) 11111110(-1) 11
28、111111(-0),48,3、算术移位与逻辑移位运算比较,*两者区别: 移动及空位添补规则不同; 有/无符号数学结果,*减少算术移丢位数的方法:可采用带进位的算术移位运算 进位C硬件位,存放无符号加减运算最高位的进位/借位,算术左移会多移丢1位数值位 如:00101011逻辑左移3次后溢出,算术左移2次后溢出,相当于双符号位,应用算术运算后再右移(除2)的场合,49,二、定点加减运算,*有符号数运算:采用与机器数含义对应的运算方法; *无符号数运算:在有符号运算基础上,进行相关处理。,1、补码加减运算,(1)补码加减运算规则 *加法:A+B补=A补+B补,推导A补+B补=(A+B+2M) (
29、mod M)=A+B补,*减法:A-B补=A+(-B)补=A补+-B补,例1设A补=1.1101,B补=1.0111,用补码求A-B补,50,例2设A=-01010,B=+01101,用补码求A+B补、A-B补,解:A补=110110,B补=001101;-B补=110011;,例3设A=+6/16,B=+9/16,用补码求A+B补、A-B补,解:A=+0.0110,B=+0.1001; A补=0.0110,B补=0.1001;-B补=1.0111;,A+B补=A补+B补 =0.0110+0.1001=0.1111; A-B补=A补+-B补=0.0110+1.0111=1.1101。,练习设A
30、=+15,B=+24,设补码的数码长度为8位(含1位符号位),用补码求A+B补、A-B补。,*加减运算特征:符号与数值一起运算; 减法可转为加法运算。,51,(2)补码运算溢出判断方法,即:相同符号数相加、且结果与操作数符号不同时溢出!,*溢出判断:用1位符号位判断,设A补=An-1An-2A0,B补=Bn-1Bn-2B0, Z补=A补+B补=Zn-1Zn-2Z0,溢出标志OVR=,52,例5设A=-11/16,B=+7/16,A+B补、A-B补是否溢出?,对A+B补,OVR=(1 0)(0 0)=0 不溢出,对A-B补,OVR=(1 0)(1 0)=1 溢出,*溢出判断优化:用结果的符号位及
31、最高数值位进位判断,溢出标志OVR= ,正溢出时Cn-1=0(Cn-2=1),对例5的A+B补,OVR=(0 0)=0 不溢出 对例5的A-B补,OVR=(1 0)=1 溢出,53,*溢出判断:用2位符号位判断 变形补码采用2个符号位的补码A变补=AnAn-1An-2A0, AnAn-1表示符号(00为正数、11为负数),例6若X=-010,Y=-110,X+Y变补溢出否?,溢出标志OVR= ;ZnZn-1=01时正溢出(=10时负溢出),解:X变补=11 110,Y变补=11 010 X+Y变补= 11 110 + 11 010 = 11 000 1 1=0 不溢出,练习设A=+15,B=+
32、24,设补码的数值部分长度为5位,分别用1位符号位和2位符号位判断A+B、A-B是否溢出。,54,(3)补码加减运算所需的硬件配置,*取反逻辑实现:,*加减运算所需硬件配置:其中Cn-1为硬件进位位;,无符号运算OVR,55,(4)补码加减运算控制流程,56,(5)基于补码的无符号数加减运算 *目标:AB无符号=A无符号B无符号;,*加减运算规则:同补码加减运算; 不需要n+1位运算,*溢出判断方法:有进位或借位时溢出(与补码运算不同), 溢出标志OVR= Cn-1;,*加减运算所需硬件配置:同补码加减运算; *加减运算控制流程:同补码加减运算,57,2、原码加减运算,(1)原码加减运算规则
33、*目标:AB原=A原B原 *运算规则:符号与数值分开运算,先比较大小、后运算;,例1设A原=101010,B原=001101,求A+B原、A-B原.,解A与B异号,P=|A|-|B|=01010-011010即|A|B|;,|B|-|A|=01101-01010=00011,A+B原= 0 00011 |A|+|B|=01101+01010=10111,A-B原= 0 10111,58,(2)原码加减运算的实现方法 由于原码的运算控制复杂,常转换为补码加减运算实现。,*原码加减运算的控制流程: A原A补、B原B补; 补码加减运算; Z补Z原,*原码加减运算溢出判断方法:同补码加减运算;,*原码
34、加减运算所需硬件配置: 在补码硬件配置基础上,增加取反、补码原码逻辑,(3)基于原码的无符号数加减运算 与基于补码的无符号运算完全相同,作业三:P8021、22、24、25,59,三、定点乘法运算,1、笔纸乘法运算分析,例1设A=+101、B=-110,笔纸乘法过程如下: 符号运算(心算),得负号; 数值运算 101 110 000 |A|200 |A|不移位 101 |A|211 |A|左移1位 101 |A|221 |A|左移2位 11110 部分积相加,*硬件实现时的需求: 加法器硬件通常只有两个输入 定长运算 每次只有两个数相加 旧部分积移位后再相加 每步进行相加形成新部分积,60,*
35、笔纸乘法的改进:,例2设二进制数A=+0.a-1a-2a-3、B=-0.b-1b-2b-3; |A|B|=|A|2-1b-1+|A|2-2b-2+|A|2-3b-3,例3设二进制数A=+a2a1a0、B=-b2b1b0; |A|B|=|A|22b2+|A|21b1+|A|20b0,改进特征左移改为右移(最后补右移的权小数点不变); 每次只与部分积高位相加(低位已被移出),=2-1|A|b-1+|A|2-1b-2+|A|2-2b-3 =2-1|A|b-1+2-1|A|b-2+2-1(|A|b-3+0) =202-1|A|b-1+2-1|A|b-2+2-1(|A|b-3+0),=22|A|20b2
36、+|A|2-1b1+|A|2-2b0 =232-1|A|b2+2-1|A|b1+2-1(|A|b0+0),61,例4设A=+111、B=-110,用笔纸改进法计算乘积,*机器乘法的实现思路: (若乘数数值位数为n-1位),循环n-1次,实现各步的加法和右移;,加法时,判断乘数当前位,决定部分积高位与0或被乘数相加(n-1位加法);,右移时,可将部分积低位放在乘数空出的位置上,1 1 1 1 1 0 0 0 0 PO + 0 0 0 0 0 0 P1 + 1 1 1 1 1 1 0 P2 + 1 1 1 1 0 1 0 1 0 P3,62,2、原码定点乘法运算,(1)原码一位乘法运算 (又称基2
37、原码乘法) *原码一位乘法运算规则: 设B原=bn-1bn-2b0 乘积符号位SP=an-1 bn-1;,乘积数值位P=|A|B|,迭代公式如下:,P0=0 P1=(P0+|A|b0)2-1 Pn-1=(Pn-2+|A|bn-2)2-1,若为纯整数乘法,|AB|=Pn-12n-1 2n-2位 若为纯小数乘法,|AB|=Pn-120 2n-2位,判断-加法-移位方法:,63,例5设A=-0.111、B=-0.101,用原码一位乘法求AB原,解:A原=1.111,B原=1.101;|A|=0.111,|B|=0.101; 乘积数值位运算时,循环3次(判断-加法-移位),=0.1000110 扩展为
38、8位(即2n位),即 |AB|=0.100011,乘积符号=a0 b0=0; 故 AB原=0.100011 连符号位共7位(即2n-1位),64,*原码一位乘法运算所需硬件配置: 设A原和B原为n位原码表示,则AB原为2n位原码表示,实现思路 采用n位加法;无需处理n-1位加法进位部分积逻辑右移,所需硬件配置 REGA、REGB、REGP均为n位REG;计数器C初始值为n-1;控制门受REGB最低位控制(输出0或REGA内容),部分积低位放在乘数空出的位置中 部分积与乘数同时逻辑右移,65,*原码一位乘法运算控制流程:循环的判断-加法-移位,不会产生进位,66,*不同数据类型的数值位数扩展:保
39、持数学上的值不变,定点纯小数无任何动作; 硬件配置及算法完全适用,定点纯整数再逻辑右移1次 硬件配置完全适用,*基于原码一位乘法硬件的无符号数乘法: 只需对运算控制流程做一些特殊处理,循环改为n次,无需进行数值位扩展; 无需所有与符号有关的操作,如求SP、绝对值及置SP; 逻辑右移改为带Cn-1的逻辑右移。,67,(2)原码二位乘法运算 (又称基4原码乘法) *目标:使一位乘法循环次数减少一半(每次使用2位乘数),*原码二位乘法运算规则: 设B原=bn-1bn-2b0 与原码一位乘法类似,迭代公式不同:,P0=0 P1=(P0+|A|b1b0)2-2 P2=(P1+|A|b3b2)2-2 n为
40、奇数时,P(n-1)/2=(P(n-3)/2+|A|bn-2bn-3)2-2,n为偶数时,Pn/2=(P(n-2)/2+|A|bn-2)2-1,68,基本的判断-加法-移位方法 设第i轮循环Pi=(Pi-1+|A|b2i-1b2i-2)2-2,*原码二位乘法运算的实现思路: 与一位乘法类似,还是循环的“判断-加法-移位”,69,优化的判断-加法-移位方法 设第i轮循环Pi=Pi-1+|A|(b2i-1b2i-2+T)2-2,+2|A|的实现:采用n+1位加法; 左移及进位所需,-|A|的实现:采用n+2位补码加法 采用算术右移,70,初始化时的处理:|B|前补0,使总位数为偶数; 最后一次循环
41、有机会处理T=1,n的奇偶及循环结束时T=1的处理,最后一次循环的处理: n为奇数时判断并处理的是00T,不移位; n为偶数时判断并处理的是0bn-2T,右移1位,71,*原码二位乘法运算的控制流程:与一位乘法算法类似 初始化计数器C= n/2 、RP=0、T=0、乘数绝对值前补0;,循环体Pi=Pi-1+|A|(b2i-1b2i-2+T)2-2, 判断b2ib2i-1T,决定加法所加的数, 算术右移2位(C=1、n为偶数时右移1位, C=1、n为奇数时不右移),例6设A=+0.111、B=+0.101,用原码二位乘求AB原,解:|A|补=000.111,AB原=0.100011,72,例7设
42、A=+0.1111、B=+0.1101,用原码二位乘求AB原,解:|A|补=000.1111,-|A|补=111.0001,故AB原=0.11000011,会为负吗?,73,3、补码定点乘法运算 *目标:符号与数值一起运算,(1)补码一位乘法运算 *种类:校正法、比较法,*校正法补码一位乘法运算规则: 设B补=bn-1bn-2b0,当B0时,B补=B,A补=2n+A (mod 2n) A补B补=(2nA)B=2nBAB=AB (mod 2n),则 AB补=A补B补=A补0bn-2b0,当B0时,B=B补-2n=1bn-2b0-2n=0bn-2b0-2n-1,AB补=A0bn-2b0补+-A2n
43、-1补 =A补0bn-2b0+-A补2n-1,运算规则与符号有关! 通常不使用校正法,74,*比较法补码一位乘法运算规则: 又称Booth算法,设B补=bn-1bn-2b0,则B0时bn-1=0、B0时bn-1=1 校正法的统一公式 AB补=A补0bn-2b0+-A补bn-12n-1,根据补码定义及同余公式,可证明-A补=-A补成立,比较法运算公式 由校正法推导而来 AB补=A补0bn-2b0-A补bn-12n-1 =A补-bn-12n-1+bn-22n-2+b0,=A补-bn-12n-1+bn-22n-1-bn-22n-2+b021-b020 =A补(bn-2-bn-1)2n-1+(bn-3
44、-bn-2)2n-2+(0-b0)20,=A补2n-1(bn-2-bn-1)+(bn-3-bn-2)2-1+(0-b0)2-(n-1) =A补2n-1(bn-2-bn-1)+(bn-3-bn-2)+ +(b0-b1)+0+(0-b0)2-12-12-1,75,迭代公式设B补=bn-1bn-2b0,b-1称为附加位、b-1=0 P0补=0 P1补=P0补+(b-1-b0)A补2-1 Pn-1补=Pn-2补+(bn-3-bn-2)A补2-1 Pn补=Pn-1补+(bn-2-bn-1)A补,最后一次不移位!,若为纯整数乘法,AB补=Pn2n-1 2n-1位 若为纯小数乘法,AB补=Pn20 2n-1
45、位,第i轮的判断-加法-移位方法:,76,解:-A补=10101,循环5次(判断-加法-移位、移位仅4次),例8A补=01011,B补=10011,用Booth算法求AB补,77,实现思路 采用n位补码加法; 右移为算术右移,*补码一位乘法运算所需硬件配置: 设A补和B补为n位补码表示,则AB补为2n位补码表示,部分积低位放在乘数空出的位置中 部分积、乘数及附加位同时算术右移,所需硬件配置 REGA、REGB、REGP均为n位REG;计数器C初始值为n;控制门受REGB最低位及附加位控制 输出0或(REGA)或(REGA)取反后的值,78,*补码一位乘法运算控制流程:循环的判断-加法-移位,思
46、考n位加法会产生溢出吗?,79,*不同数据类型的乘积位数扩展:保持数学上的值不变,定点纯小数0REGB0;,定点纯整数再算术右移1次,*基于补码一位乘法硬件的无符号数乘法: 只需对运算控制流程做一些特殊处理,每次只判断REGB0,决定是加0或加(REGA); 算术右移改为带Cn-1的逻辑右移; 循环n次,移位n次。,80,四、定点除法运算,1、笔纸除法运算分析,例1设A=+0.101、B=-0.110,C=+101001、D=+110,笔纸除法过程如下: 0.110 110 0.1100.1010 110101001 0.0110 110 0.01000 1000 0.00110 110 0.
47、000100 101 结果: 商=-0.110 商=+110 余数=+0.000100 余数=+101,*除法运算应用:纯整数除法关心余数(取模), 纯小数除法不关心余数(与近似值相关)。,81,*机器定点除法对被除数、商、余数的要求: 商、余数数据表示及长度与除数相同, 余数与被除数同符号;,*机器定点除法的实现思路:,被除数,82,2、原码定点除法运算,(1)恢复余数法 *思想:位商qi为0时恢复余数(即+|除数|),例2A原=1.1011,B原=0.1101,用恢复余数法求A/B原,循环n-1次,求得q1qn-1及Rn-1 上商第i轮Ri=Ri-1左移1位-|B|,Ri0时qi=1; 求
48、余qi=1时Ri=Ri,qi=0时Ri=Ri+|B|,*运算规则: 设商原=q0.q1qn-1,第i轮循环余数为Ri 判溢出R0=|A|-|B|,R00时溢出,否则R0=|A|; 求商符SQ=A符号 B的符号;,解:SQ=1 0=1,|B|补=0.1101,-|B|补=1.0011,得 |商|=0.1101,|余数|=0.0111; 除法结果 A/B原=1.1101,A%B原=1.0111,83,84,(2)不恢复余数法(又称加减交替法) *思想:优化恢复余数法的性能,即qi=0时下轮补加除数,*运算规则变化: 求余若qi=0时Ri+1=2Ri+|B|,否则Ri+1=2Ri-|B|, 若qn-
49、1=0(即Rn-10)时,则Rn-1=Rn-1+|B|; 上商基本不变,即Ri+10时qi+11,否则qi+10; 移位不变,即部分余数与商同时左移。,*效果:平均执行加法次数从1.5(n-1)(n-1)+0.5次,*优化思路: 设Ri-1、Ri、Ri+1为恢复余数法的三轮余数, Ri、Ri+1为恢复前的余数,则 Ri=2Ri-1-|B|, 若Ri0,则qi=1,Ri=Ri, Ri+1=2Ri-|B|=2Ri-|B| 否则qi=0,Ri=Ri+|B|,Ri+1=2Ri-|B|=2Ri+|B|,85,例3A原=1.1011,B原=0.1101,不恢复余数法求A/B原,解:SQ=1 0=1,|B|
50、补=0.1101,-|B|补=1.0011,86,*不恢复余数原码除法所需硬件配置: REGA、REGB、REGQ均为n位REG,REGA存放余数; 计数器C初始设置为n-1; 控制门受REGQ最低位控制。 输出(REGB)或(REGB)取反后的值,87,*不恢复余数原码除法运算控制流程:,88,89,3、补码定点除法运算 *思想:与原码除法一致,但用补码表示商及余数。,*不恢复余数法的运算规则: 设A补为被除数、B补为除数,Q补=q0.q1qn-1为商, Ri补为第i轮余数(可能与A补异号), Rn-1补为最终余数(与A补同号);,商符的确定商的符号与数值部分一起运算形成,按反码规则上商,商
51、为正数时,够减时上商为1 商为负数时,不够减时上商为1,90,部分商的确定按反码规则上商,新余数的确定上轮够减时-|B|,否则+|B|,最终余数的修正不够减时修正(+|B|),不恢复余数法,91,例4A补=1.0101,B补=0.1101,不恢复余数求A/B补,92,*不恢复余数补码除法运算控制流程:,*不恢复余数补码除法所需硬件配置: 与原码除法基本相同(不需要SQ及SR),93,纯小数除法时常恒置1,94,浮点数的数据表示回顾: F=SMM2E,数据存储方式通常采用规格化数方式存储 规格化数 0.5|M|1,2.5 浮点数的运算,表示格式定点纯小数M+定点整数E,编码方式M常采用原码或补码
52、,E常采用移码,数码长度有几种长度,如单精度和双精度,规格化操作左规:M左移1位、E减1, 右规:M右移1位、E加1,95,一、浮点加减运算,1、浮点运算规则 设浮点数A=MA2EA、B=MB2EB,并设EAEB,*减少运算精度损失的方法: 运算时,增加尾数的有效位数(常称为警戒位),*运算规则: 对阶 结果的阶=EB,A=MA2EA-EB; 运算 结果的尾数=MA2EA-EBMB; 规格化 使AB的结果为规格化数,如:IEEE 754标准的单精度浮点数中, 存储时尾数长度为23位,运算时尾数长度为30位 7位警戒位,96,2、浮点运算步骤 设运算初步结果F=MF2EF,规格化结果F=MF2E
53、F。,*第1步对阶 (EF) 求公共阶:EF=max(EA,EB); 小阶数的尾数算术右移:右移位数E=|EA-EB|, 移出的数据进入警戒位,例1A浮=0.1101201,B浮=(-0.1010)211 解:E=11-01=10,A浮=0.0011 01211,*第2步尾数加减 (MF) 尾数加减运算:MF=MAMB,警戒位一起运算,补码 00.0011 01 + 11.0110 00 11.1001 01,97,*第3步尾数规格化 (MFMF”,EFEF”) |MF|1.01次右规(尾数算术右移1位、阶码加1); 0.5|MF|1.0无需规格化操作(已为规格化数); |MF|0.5n次左规
54、(尾数算术左移1位,阶码减1),直到绝对值的最高位为1,例2续例1,求浮点加法的规格化尾数(原码、补码),注意点:左移及右移均为算术移位;,原码规格化数的最高数值位为1, 补码规格化数的最高数值位与符号相反,解:原码结果 1.0110 11 补码结果 11.1001 01 左规1次 1.1101 10 11.0010 10,98,*第4步尾数舍入 (MF”MF,EF”EF) 丢弃警戒位时,尾数作相应处理,以提高精度,处理方法: 截断法尾数不变,直接丢弃警戒位; 恒置1法将尾数末位真值置为1; 舍入法警戒位最高位真值为1时“入”,否则“舍”; 查表舍入法尾数末尾几位全为1时,采用恒置1法, 否则
55、采用舍入法,注意点:舍入针对真值,舍使|M|变小、入使|M|变大 不同码制的规则不同,舍入导致尾数产生溢出时,需再做1次右规,系统结构决定舍入方法,计算机组成实现舍入方法,99,*第5步溢出判断 若阶码EF上溢出:置溢出标志OVR=1; 若阶码EF下溢出:置结果为机器零,溢出判断方法:与阶的运算方法有关 单符号位判断如用源及结果的符号判断 或用结果的最高两个进位判断 双符号位判断如01为上溢、10为下溢,100,3、浮点数加减法运算示例,例3浮点数采用1位数符、8位尾数、4位阶码表示,尾数、阶均用补码编码;采用2位警戒位、双符号位运算、舍入法。 求0.1101101122+(-0.101011
56、00)24的机器数(码),解:A浮=0 0010 11011011,B浮=1 0100 01010100,对阶:EF补=max(EA,EB)=00 100=EA补=EB补 MA补=00.00110110 11,MB补=11.01010100 00,尾数加减: 00.00110110 11 + 11.01010100 00 11.10001010 11 MF补=MA补+MB补=11.10001010 11,不溢出,101,尾数规格化: 加减结果MF补=11.10001010 11,EF补=00 100,尾数舍入: MF”补符号=11、警戒位=10,舍入时选择“舍” MF补=11.00010101,EF补=00 011,阶码溢出判断:EF补符号=00,不溢出,运算结果:MF补=1.00010101,EF补=0011 机器码为1 0011 00010101,尾数不溢出、数值最高位与符号相同需左规 MF”补=11.00010101 10,EF”补=00 011,练习若浮点数用1位数符、9位尾数、6位阶码表示,尾数用补码、阶用移码编码,采用2位警戒位、单符号位运算(带进位)、舍入法。求0.111101001212+0.11001010128的机器数,102,4、浮点数加减法运算控制流程,103,10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学三年级英语(外研版三起)秋季学期“启航·联接·成长”第一课教案
- 2026年轨道交通与工程专业国家职业资格考试题及答案
- 遗体清洁操作规范考核试卷
- 2026年N1叉车司机考试试题及答案
- 某造纸厂设备操作办法
- 某纺织厂节能降耗办法
- 龙港市中小学教师招聘笔试真题试卷(含完整答案解析)
- 小学主题班会课件:加强校内外实践教学与素质教育
- 初中七年级生物跨学科实践导学案:水绵密码与蓝碳先驱
- 小学五年级数学《长方体和正方体》单元整体复习教案
- 2026年陕西省中考数学卷试题真题及答案详解(精校打印版)
- 二手房买卖合同(无中介版)模板
- 2025年广东建筑安全员C证考试题库及答案
- 2026年春季学期小学科学教科版二年级下册期末检测试卷附答案
- 国家开放大学专科《管理英语2》一平台机考真题(第五套)
- 宝兴县兴产投资有限责任公司2026年度公开招聘工作人员更正考试模拟试题及答案详解
- 2026中国商业遥感卫星数据服务商业模式与政策限制研究
- 2025年重庆市拟任县处级领导干部任职资格试题及参考答案
- 人工气道气囊的管理专家共识
- 2026年书画等级考试CCPT毛笔书法真题
- 义务教育信息科技课程标准(2022年版2025年修订)解读
评论
0/150
提交评论