第三章运算方法与运算器部件.ppt
《第三章运算方法与运算器部件.ppt》由会员分享,可在线阅读,更多相关《第三章运算方法与运算器部件.ppt(116页珍藏版)》请在三一办公上搜索。
1、1,第三章 运算方法和运算部件,2,主要内容,3.1 数据的表示方法和转换,3.2 带符号数据的表示方法与 加减运算,3.3 二进制乘法运算,3.5 浮点数的运算方法,3.6 运算部件,3.7 计算机中的数据校验方法,3.4 定点除法运算,3,3.1 数制,3.1.1 数值型数据的表示和转换,3.1.2 十进制数的编码与运算,4,1、进位计数制 基数(base或radix):所用到的数字符号个数。例如10进制:0-9 十个数码,基数为10权:进位制中各位“1”所表示的值为该位的权.常见的进位制:2,8,10,16进制。二进制:Binary 八进制:Octal十进制:Decimal 十六进制:H
2、exadecimal,3.1.1 数值型数据的表示和转换,5,2、进位计数制之间的转换,按权展开法:先写成多项式,然后计算十进制结果.N=dn-1 dn-2 d1d0d-1d-2 d-m=dn-1 Rn-1+dn-2 Rn-2+d1 R1+d0 R0+d-1R-1+d-2 R-2+d-m R-m,1)R进制转换成十进制的方法,6,例如:写出(1101.01)2,(237)8,(10D)16的十进制数,(1101.01)2=123+122+021+120+02-1+12-2=8+4+1+0.25=13.25(237)8=282+321+720=128+24+7=159(10D)16=1162+1
3、3160=256+13=269,7,2)十进制转换成二进制方法,一般分为两个步骤:整数部分的转换除2取余法(基数除法)小数部分的转换乘2取整法(基数乘法),8,例如:将(327)10转换成二进制数,2 327 余数,2 163 1,2 81 1,2 40 1,2 20 0,2 10 0,2 5 0,2 2 1,2 1 0,2 0 1,(327)10=(101000111)2,最高位,最低位,9,乘基取整法(小数部分的转换),例如:将(0.8125)10 转换成二进制小数.整数部分2 0.8125=1.625 12 0.625=1.25 12 0.25=0.5 02 0.5=1.0 1(0.81
4、25)10=(0.1101)2,10,例:将(0.2)10 转换成二进制小数,0.2 2=0.4 00.4 2=0.8 00.8 2=1.6 10.6 2=1.2 10.2 2=0.4 00.4 2=0.8 00.8 2=1.6 10.6 2=1.2 1(0.2)10=0.001100110011.2,整数部分,11,3)其它进制之间的直接转换法,二八000 0001 1010 2011 3100 4101 5110 6111 7,1000 81001 91010 A1011 B1100 C1101 D1110 E1111 F,二 十六,0000 00001 10010 20011 30100
5、 40101 50110 60111 7,12,二进制转换成八进制,例:(10110111.01101)2,(10110111.01101)2=(267.32)8,八进制:2 6 7.3 2,二进制:010,110,111.011,010,二进制:10,110,111.011,01,13,八进制转换二进制,例如:(123.46)8=(001,010,011.100,110)2=(1010011.10011)2,14,二进制转换成十六进制,例:(110110111.01101)2,(10110111.01101)2=(1B7.68)16,十六进制:1 B 7.6 8,二进制:0001,1011,
6、0111.0110,1000,二进制:1,1011,0111.0110,1,15,十六进制转换成二进制,例如:(7AC.DE)16=(0111,1010,1100.1101,1110)2=(11110101100.1101111)2,16,3、数值符号的表示,带符号数的编码 名词解释:真值和机器数 真值:正、负号加某进制数绝对值的形式。如二进制真值:X=+1011 y=-1011 机器数:符号数码化的数称为机器数 如:X=01011 Y=11011,17,3.1.2 十进制数的编码与运算,1、BCD码 8421码为有权代码,数值为 N=8d3+4d2+2d1+1d0 十进制数63.29的BCD
7、码为:0110 0011.0010 1001 2421码为有权代码,数值为 N=2d3+4d2+2d1+1d0 十进制数63.29的BCD码为:1100 0011.0010 1111 余3码为无权代码,对应8421码加3而得。除上述三种BCD码之外,还有5421码、格雷码等,18,BCD码,19,二进制码 格雷码,二进制码-格雷码(编码):从最右边一位起,依次将每一位与左边一位异或(XOR),作为对应格雷码该位的值,最左边一位不变;格雷码-二进制码(解码):从左边第二位起,将每位与左边一位解码后的值异或,作为该位解码后的值(最左边一位依然不变).,20,十进制编码的加法运算,1)“8421”B
8、CD码加法运算 BCD码运算应将每4位二进制数分为一组,组与组之间直接运算,逢十进一。但计算机中无法区分BCD码,一概作为二进制数处理,因此,计算机做此运算后须进行调整。调整方法:和9(1001)2,不调整 和9(1001)2,加6(0110)2修正,21,0 1 1 1+1 0 0 0 1 1 1 1+0 1 1 01 0 1 0 1,1 0 0 0+1 0 0 11 0 0 0 1+0 1 1 01 0 1 1 1,例:5+3=8,7+8=15,8+9=17,0 1 0 1+0 0 1 1 1 0 0 0,向高位进位,22,2、数字串在机内的表示与存储,主要有两种形式:(l)字符形式:用一
9、个字节存放一个十进制数位或符号位,存放的是09十个数字和正负号的ASCll编码值。例如,123的编码为2B 31 32 33,占用 4个连续的字节。这种方式高4位不具有数值意义,运算起来很不方便,主要用在非数值计算的应用领域。,23,(2)压缩的十进制数形式。用一个字节存放两个十进制数位,其值用BCD码或ASCll码的低4位表示。符号位也占半个字节并放在最低数字位之后,其值可从4位二进制码中的6种冗余状态中选用。例,用C(l2)表示正号;D(13)表示负号。并规定数字和符号位个数之和必须为偶数,否则在最高数字之前补一个0。例如,123被表示成12 3C(2个字节),一12被表示成01 2D(2
10、个字节)。,24,3.2 带符号数据的表示方法与加减运算,机器数:计算机中表示的带符号的二进制数.四种表示方法即原码、补码、反码和移码。,3.2.1 原码、补码、反码和移码 及运算,3.2.2 定点数和浮点数计算机中的两种表示方式,3.2.3 数字化信息的编码及表示,25,3.2.1 原码、补码、反码和移码及运算,1、原码表示法 原码表示法用“0”表正号,用“1”表负号,有 效值部分用二进制的绝对值表示。课件以下的n表示数值位数(机器字长为n+1位),小数:X 1X0 X原=1-X=1+|X|0X-1,26,原码的表示范围:+0原=00000000;-0原=10000000 整数最大值:2n-
11、1;最小值:-(2n-1)小数最大值:1-2-n;最小值-(1-2-n)表示数的个数:2n+1-1,若二进制的位数是8,求其表示的最大值、最小值及表示数的个数,整数 127,-127;小数 127/128,-127/128;个数:255,27,原码特点:,表示简单,易于同真值之间进行转换,实现乘除运算规则简单。进行加减运算十分麻烦。,28,2、补码表示法,模:计量器具的容量,或称为模数。例如:4位字长的机器表示的二进制16种状态,模为16=24。整数N位字长的模值为 2n,一位符号位的纯小数的模值为2。补码的定义:正数的补码就是正数的本身,负数的补码是原负数加上模。,29,补码的表示范围:,N
12、+1位纯整数:2n-1,-2n N+1位纯小数:1-2-n,-1 均能表示 2n+1 个数,小数:X 1X0 X补=2+X=2-|X|0X-1,30,原码求补码 正数:X补=X原 负数:符号除外,各位取反,末位加1例:X=-01001001 X原=11001001 X补=10110110+1=10110111 X补=28+X=100000000-1001001=10110111 100000000-1001001 10110111,原码与补码之间的转换,31,由X补求-X补(求机器负数),运算过程是连同 符号一起将各位取反,末位再加1。设字长N=8位 例:X=+100 1001 X补=0100
13、 1001-X 补=1 011 01 1 1,32,最大的优点就是将减法运算转换成加法运算。,X补-Y补=X补+-Y补例如 X=(11)10=(1011)2 Y=(5)10=(0101)2 已知字长n=5位 X补-Y补=X补+-Y补=01011+11011=100110=00110=(6)10 注:最高1位已经超过字长故应丢掉,33,3、反码表示法,正数的表示与原、补码相同,负数的补码符号位为1,数值位是将原码的数值按位取反,就得到该数的反码表示。,小数:X 1X0 X反=2-2-n+X 0X-1,34,整数的表示形式,X 0 X2n X原=2n-X=2n+|X|-2n X 0,X 0 X2n
14、 X补=2n+1+X=2n+1-|X|-2n X 0,X 0 X2n X反=2n+1-1+X-2n X 0,35,4、移码表示法,X移=2n+X-2n X 2n,X1=+101 0101X1补=0101 0101X1移=1101 0101X2=-0101 0101X2补=1010 1011X2移=0010 1011,36,码制表示法小结,X原、X反、X 补用“0”表示正号,用“1”表示负号;X移用“1”表示正号,用“0”表示负号。如果X为正数,则X原=X反=X 补。如果X为0,则 X 补、X移有唯一 编码,X原、X反 有两种编码。移码与补码的数值形式相同,只是符号位相反。,37,6、数值的运算
15、方法,计算机中,常用补码进行加减运算 补码可将减法变加法进行运算 补码运算特点:符号位和数值位一同运算 定点补码运算在加法运算时的基本规则:X+Y补=X补+Y补 定点补码运算在减法运算时的基本规则:X-Y补=X补+-Y补,38,例如:已知机器字长n=8,X=44,Y=53,求X+Y=?,解:X原=00101100,Y原=00110101,X补=00101100,Y补=00110101,X补=0 0 1 0 1 1 0 0+Y补=0 0 1 1 0 1 0 1,1,0,0,0,0,1,1,0,X+Y=+97,39,例:已知机器字长n=8,X=-44,Y=-53,求X+Y=?,解:44补=0010
16、1100,53补=00110101 X补=-44补=11010011+1=11010100,Y补=-53补=11001010+1=11001011,X补=1 1 0 1 0 1 0 0+Y补=1 1 0 0 1 0 1 1 X+Y补=1 1 0 0 1 1 1 1 1 超出8位,舍弃模值 X+Y=-01100001,X+Y=(-97),40,例:已知机器字长n=8,X=44,Y=53,求X-Y=?,解:X补=00101100,Y补=00110101,-Y补=11001011 X补=0 0 1 0 1 1 0 0+-Y补=1 1 0 0 1 0 1 1 11 1 1 0 1 1 1 X-Y补=1
17、1110111,X-Y=-0001001=(-9),41,例:已知机器字长n=8,X=-44,Y=-53,求X-Y=?,解:X补=11010100,Y补=11001011,-Y补=00110101 X补=1 1 0 1 0 1 0 0+-Y补=0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 0 1 超出8位(模值),舍弃X-Y补=00001001,X-Y=+0001001=(+9),42,溢出问题,例:已知机器字长n=8,X=120,Y=10,求X+Y=?,43,解:X补=01111000,Y补=00001010,X补=0 1 1 1 1 0 0 0+Y补=0 0 0 0 1 0
18、1 0 1 0 0 0 0 0 1 0 X+Y补=10000010,X+Y原=11111110 X+Y的真值=-1111110=(-126)10 运算结果超出机器数值范围发生溢出错误。,44,溢出判断规则与判断方法,两个相同符号数相加,其运算结果符号与被加数相同,若相反则产生溢出;两个相异符号数相加,不会产生溢出。溢出判断方法:1.双符号法,2.进位判断法。,45,(1)双符号位溢出判断法 Sf1Sf2(也被称为变形补码),双符号含义:00表示运算结果为正数;01表示运算结果正向溢出;10表示运算结果负向溢出;11表示运算结果为负数。亦即:OVR=Sf1 Sf2=1 有溢出 OVR=Sf1 S
19、f2=0 无溢出 第一位符号位为运算结果的真正符号位。,46,例:X=0.1001,Y=0.0101,求X+Y,解:X补=00.1 0 0 1+Y补=00.0 1 0 1 X+Y补=00.1 1 1 0 两个符号位相同,运算结果无溢出 X+Y=+0.1110,47,例:X=-0.1001,Y=-0.0101,求 X+Y=?,解:X补=11.0110+1=1 1.0 1 1 1+Y补=11.1010+1=1 1.1 0 1 1 X+Y补=1 1 1.0 0 1 0 最高位1丢掉 两个符号位相同,运算结果无溢出 X+Y=-0.1110,48,例:X=0.1011,Y=0.0111,求 X+Y=?,
20、解:X补=00.1 0 1 1+Y补=00.0 1 1 1 X+Y补=01.0 0 1 0 两个符号位为01,运算结果正向溢出,49,例:X=-0.1011,Y=0.0111,求 X-Y=?,解:X补=11.0100+1=11.0101 Y补=00.0111-Y补=11.1001 X补=1 1.0 1 0 1+-Y补=1 1.1 0 0 1 X+Y补=1 1 0.1 1 1 0 两个符号位10不同,运算结果负向溢出,50,(2)进位溢出判断法 SC,两单符号位的补码进行加减运算时,若最高数值位向符号位的进位值C与符号位产生的进位输出值S相同时则无溢出,否则溢出。例:X补=1.1 0 1+Y补=
21、1.0 0 1 X+Y补=1 0.1 1 0 C=0,S=1,有溢出 X+Y=+0.010,X补=1.1 1 0+Y补=0.1 0 0X+Y补=1 0.0 1 0C=1,S=1,无溢出,51,3.2.2 定点数和浮点数,数值范围:一种数据类型所能表示的最大值和最小值数据精度:实数所能表示的有效数字位数。数值范围和数据精度均与使用多少位二进制位数以及编码方式有关。计算机用数字表示正负,隐含规定小数点。采用“定点”、“浮点”两种表示形式。,52,1、数的定点表示方法,定点整数小数点位置固定在数的最低位之后 如:Dn Dn-1 D1 D0.定点小数小数点位置固定在数的符号位之后、数值最高位之前。如:
22、D0.D1 D-(n-1)D-n,53,(1)浮点数的表示:是把字长分成阶码和尾数两部分。其根据就是:N=M RE J Em-2.E0 S D-1D-(n-1)阶符 阶码值 数符.尾数值 S J Em-2.E0 D-1D-(n-1)数符 阶符 阶码值.尾数值通常,阶码为补码或移码定点整数,尾数为补码或原码定点小数。,2、数的浮点表示方法,54,(2)浮点数的规格化,目的:字长固定的情况下提高表示的精度,方法:调整阶码使尾数满足下列关系:尾数用原码表示时,无论正负应满足1/2d d-1,即 1.0 x.x,55,例题:某机器用32位表示一个实数,阶码8位(含1位阶符),用定点整数补码表示;尾数2
23、4位(含数符1位),用规格化定点小数补码表示,基数为2。则:,1)X=256.5 的第一种浮点表示格式 X=(256.5)10=+(100000000.1)2=+(0.1000000001 2+9)2 8位阶码为:+9补=0000 1001 24位尾数为:+0.10 0000 0001补=0.100 0000 0010 0000 0000 0000 所求256.5的浮点表示格式为:0000 1001 0100 0000 0010 0000 0000 0000 用16进制表示此结果则为:(09402000)16,56,Y=-(256.5)10=-(100000000.1)2=-0.1000000
24、001 2+9 8位阶码为:+9补=0000 1001 24位尾数为:-0.10 0000 0001补=1.011 1111 1110 0000 0000 0000 所求-256.5的浮点表示格式为:0000 1001 1011 1111 1110 0000 0000 0000 用16进制表示此结果则为:09BFE000H,2)求Y=-256.5 的第一种浮点表示格式,57,3.3 二进制乘法运算,1.软件编程方法实现(时序控制乘法器)由手算到机器实现,要解决三个问题:符号问题、部分积相加进位问题、移位问题。原码乘法是先取绝对值相乘,再根据同号相乘为正、异号相乘为负,单独决定符号位。补码乘法则
25、让符号位直接参加运算,算法将会复杂一些。2.硬件快速乘法器实现 利用中大规模集成电路芯片,在一拍节中实现多项部分积的相加,成为阵列乘法器。,58,乘法运算,1.分析笔算乘法,A=0.1101 B=0.1011,AB=0.10001111,0.1 1 0 1,0.1 0 1 1,1 1 0 1,1 1 0 1,0 0 0 0,1 1 0 1,0.1 0 0 0 1 1 1 1,符号位单独处理,乘数的某一位决定是否加被乘数,4个位积一起相加,乘积的位数扩大一倍,乘积的符号心算求得,?,59,3.3.1 定点数一位乘法,1、定点原码一位乘,2、定点补码一位乘法,60,例:设X=0.1101,Y=0.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 运算 方法 运算器 部件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5294690.html