运算方法和运算部件,2.1 带符号的数据表示方法 2.1.1 定点数的数据表示 2.1.2 浮点数的数据表示2.2 机器数的运算方法 2.2.1 定点数加减运算 2.2.2 二进制乘法运算 2.2.3 二进制除法运算 2.2.4 浮点数的运算,,第2章,2.3 数据校验码 2.3.1 奇偶校验码 2.3.2 海明码 2.3.3 循环冗余校验码2.4 算术逻辑单元 2.4.1 ALU电路 2.4.2 快速进位链,,05:37:13,2,,数据的表示(定点数和浮点数);补码的加减运算及溢出判断;定点数的原码、补码的乘除法,实现过程;掌握3种数据校验码(奇偶校验、海明码、循环冗余码)的编码方法、译码方法,功能及应用场合算术逻辑单元的工作原理,,教 学 要 求,第 2.1节,,带符号的数据表示方法,一、基本概念1.真值 计算机外界的数.现表示为二进制. X1=+1011000B X2= -101100B2.机器数 在计算机中表示的带符号的二进制数,机器数有三种表示方式:原码、补码和反码机器数的长度受字长限制。
3.无符号数 表示范围: 8位 0~ 255 16位 0~ 65535 N位 0~ 2N-1,4.有符号数,计算机中正负数的表示,7 6 5 4 3 2 1 0,,,符号位 数值位,若机器字长为16位,,,符号位 = 0 正数 数值位 = 1 负数,15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,若机器字长为8位,H.O.Byte,L.O.Byte,H.O.Nibble,L.O.Nibble,1. 原码表示法 符号__绝对值法 【例】 n = 8bit [+3]原码 = 0, 0000011B = 03H [- 3]原码 = 1, 0000011B = 83H [+0]原码 = 0, 0000000B = 00H [- 0]原码 = 1, 0000000B = 80H 0 的表示不惟一,2.1.1 定点数的数据表示,,优点:真值和原码对应关系简单,容易转化;乘法运算规则简单缺点:运算(加、减法)复杂,低效;0有两个表示,原码表示法的特点,2.1.1 定点数的数据表示,【例】n = 8bit [+5]反码 = 0, 0000101B = 05H [- 5]反码 = 1, 1111010B = FAH [+0]反码 = 0,0000000B = 00H [- 0]反码 = 1, 1111111B = FFH 反码表示法特点: 反码的和等于和的反码; 0 的表示不惟一,2.反码表示法,正数的反码: 同原码 负数的反码: 是对该数的原码除符号位外各位求反,,3.补码表示法,正数的补码: 同原码负数的补码: (1) 求出该负数相对应正数的补码 (2) 按位求反 (3) 末位加1,[ +1]补=0000 0001B[+127]补=0111 1111B[ +0]补=0000 0000B[ -1]补=1111 1111B[-127]补=1000 0001B[ -0]补=0000 0000B定义:[-128]补=1000 0000,补码的特性1[X]补码 [-X]补码,求补,,n位二进制补码的表示范围: - 2n-1 ≤ N ≤ 2n-1-1,n位无符号整数的表示范围: 0 ≤ N ≤ 2n-1,求补概念:求某数的相反数求补方法:对一个二进制数按位求反、末位加一,,补码减法可转换为补码加法,2.加法规则 [X+Y]补码 = [X]补码 + [Y]补码3.减法规则 [X-Y]补码 = [X]补码 + [-Y]补码,特性: ( X + Y )补 = X补 + Y补,3) X= 3 Y= –2,X补=0 0011B Y补=1 1110B,,,,0 0001B,(+1补码),2) X= –3 Y= –2,X补=1 1101B Y补=1 1110B,,,,1 1011B,(– 5补码),1) X=3 Y=2,X补=0 0011B Y补=0 0010B,,,,0 0101B,(+5补码),4) X= –3 Y= 2,X补=1 1101B Y补=0 0010B,,,,1 1111B,(–1补码),【例】求(X+Y)补,1) X= 4 Y= –5,X补=0 0100B Y补=1 1011B(-Y)补=0 0101B,,,,0 1001B,(+9补码),2) X= –4 Y= 5,X补=1 1100B Y补=0 0101B(-Y)补=1 1011B,,,,1 0111B,(–9补码),【例】求(X – Y)补,Y补 (–Y)补:,,求补,不管Y补为正或负,将其符号连同尾数一起各位变反,末位加1。
特性:( X - Y )补 = X补 + (-Y)补,注意:补码表示与求补的区别,补码特点: 当补码加法运算的结果不超出机器范围时,可得出以下重要结论:(1)用补码表示的两数进行加法运算,其结果 仍为补码2)[X+Y]补=[X]补+[Y]补 3)符号位与数值位一样参与运算符号位不变 数值位不变(符号位为0) 变反(符号位为1) +,–←→0,1 数值位不变 数值位不变(符号位为0) 变反加1(符号位为1) 符号位不变,[X]反,X真值,[X]原,[X]补,,,,[例]真值:-52原码:10110100反码:11001011补码:11001100,4.原码、反码和补码之间的转换,5.讨论机器数的表示范围 以1个字节长为例原码:11111111----01111111 (-127到+127) 注意0有两种表示:00000000与10000000 反码:10000000----01111111 (-127到+127) 0也有两种表示补码:10000000----01111111 (-128到+127) 0只有一种表示,,第 2.2节,,机器数的运算方法,溢出的概念:当运算结果超出机器数所能表示的范围时,称为溢出。
进位的概念: 由于运算结果超出了位数,最高有效位向前的进位,这一位自然丢失,一般不表示结果的对错比较溢出和进位,,,2.2.1 定点数加减运算,溢出的判断原则:同号数相加,其结果相异异号数相减,其结果与被减数相异异号相加或同号相减,不会发生溢出)溢出的判断方法:有两种采用最高有效位的进位判断采用变形补码,加减法运算的溢出处理,复习提问,0 1 1 0 0 1 1 0 所以:这四种情况全都是溢出若最高数值位向符号位的进位值与符号位产生的进位输出值不相同,表明加减运算产生了溢出方法1: 采用最高有效位的进位判断,,结果符号位是01,正溢出,方法2:采用变形补码判断,,结论: 变形补码的结果符号位为,所以[X]补-[Y]补=00,000110B,判断结果为正数,无溢出在计算机中的数据有定点数和浮点数两种表示方式:,一.定点数定点数:是指小数点固定在某个位置上的数据. (我们在前面讨论的数据都是定点数)一般有小数和整数两种表示形式定点小数是把小数点固定在数据数值部分的左边,符号位的右边;整数是把小数点固定在数据数值部分的右边二.浮点数,定点机中具有相同的E,即小数点是固定不变的(通常E=0)【例】定点数N=0.1101011定点机中表示:,,2.2.2 二进制乘法运算,2.2.2 二进制乘法运算,移位操作移位类型逻辑移位:数码位置变化,数值不变。
左移时低位补0右移时高位补0算术移位:数码位置变化,数值变化,符号位不变左移一位相当于带符号数乘以2右移一位相当于带符号数除以2,(1)单符号位 :,0 0111,,0 1110,(2)双符号位:,00 1110,00 0111,(3)移位规则,左移,右移,,,右移,0 0111,0 0011,,,,,左移,左移,右移,右移,01 1100,00 1110,00 0111,数符不变,(单:符号位不变;双:第一符号位不变)空位补0,(右移时第二符号位移至尾数最高位)2.正数补码移位规则,易出错处:,,(1)单符号位 :,1 1011,,1 0110,(2)双符号位:,10 1100,11 0110,(3)移位规则,左移,右移,,,右移,1 1011,1 1101,,,,左移,右移,右移,11 0110,11 1011,数符不变,(单:符号位不变;双:第一符号位不变)左移空位补0,(第二符号位移至尾数最高位)易出错处:,,,,,右移空位补1,3.负数补码移位规则,,一、 定点原码一位乘法,本节重点,掌握原码一位乘算法及具体运算;掌握补码一位乘的算法及具体运算;,0.1101 ×0.1011,1101 1101 0000 1101,,,,,0.10001111,,部分积,运算规则:取操作数绝对值参加运算,符号位单独处理。
计算机中实现方法:将n位乘法转换为n次累加与n次右移完成问题:1)加数增多(由乘数位数决定) 2)加数的位数增多(与被乘数、乘数位数有关)改进:将一次相加改为分步累加1.手算,每次将一位乘数所对应的部分积与原部分积的累加和相加,并移位设置寄存器: A:存放部分积累加和、乘积高位 B:存放被乘数 C:存放乘数、乘积低位,2.分步乘法,,计算机中实现方法:将n位乘法转换为n次“累加与移位”完成 即:每一步求出一位乘数所对应的新部分积,并与原部分积作一次累加,然后累加的结果右移一位,,B,A+B→A 右移一位到C高位中,,,C,,,A+B→A 右移一位到C高位中,,A+0→A 右移一位到C高位中,,A+B→A 右移一位到C高位中,,A C,,步数 条件 操作 A(部分积) C(乘数),00.0000 .1011,1),Cn=1,+|X|,Cn,+ 00.1101,,00.1101,,00.0110,。