第2章 原码反码补码课件.ppt
,大学计算机基础,任小广计算机学院611教研室,第2章 计算机基本信息表示,1,t课件,上讲回顾,2.1 进制2.1.1 进制的概念2.1.2 二进制、八进制和十六进制2.1.3 进制转换2.2 二进制运算的物理实现2.3 计算机数值表示2.4 字符编码,2,t课件,主要内容,2.1 进制2.2 二进制运算的物理实现2.3 计算机数值表示2.3.1 计算机码制2.3.2 定点数和浮点数2.4 字符编码,3,t课件,2.3.1 计算机码制,计算机可以表示0和1,就可以表示二进制数了吗?前讲回顾:0/1直接对应于二进制数字 (5.25)10=(101.01)2但,数还包括正负符号和小数点计算机码制:如何用0/1编码处理正负符号和小数点有符号整数的0/1编码不同的码制有不同的特点表示范围,计算方便,4,t课件,原码,原码最直观的二进制整数编码 共n位最高位对符号部分进行编码用0表示“”,用1表示“”剩下的(n 1)位对数值部分进行编码编码与二进制数的数字部分相同如果数字部分不足(n 1)位,则高位补0,补足至(n 1)位, ,5,t课件,原码,原码举例8位二进制编码 真值:X = + 101 原码: X 原 = 00000101 若真值中数字个数(不含高位0)多于(n-1),则不能用n位原码编码如 X=+10101010 数值0对应的8位二进制原码是?+0:00000000 -0:10000000,n位原码的表示范围:-(2n-1-1) X (2n-1-1),.,Y = 1010 Y 原 = 10001010,6,t课件,原码,原码运算 A=+ 0001,B=+0110,求 A+B A=+ 1011,B= -1110,求 A+B,要对符号位和数值绝对值大小进行判断,A B 0011, |B| |A|B|-|A|, A=01011,B=11110做减法,.,7,t课件,原码,原码特点优点简单直观,容易理解缺点零的形式不唯一做加法和减法运算较为复杂,要对符号位和数值的绝对值大小进行判断,需要设计新的码制!,8,t课件,反码,符号部分同原码,即数的最高位为符号位,用0表示正数,用1表示负数数值部分与它的符号位有关对于正数,反码与原码相同对于负数,反码数值是将原码数值按位取反 X = +1101 Y= -1101 X原 = 01101 Y原 = 11101 X反 = 01101 Y反 = 10010反码如何转换成原码?正数:相同;负数:数值按位取反, ,9,t课件,反码,反码的性质反码表示若x = + x1x2 xn-1 ,则x反= 0 x1x2 xn-1若x = - x1x2 xn-1 , 则x反= 1x1x2 xn-1反码的表示范围0有两种表示形式 + 00 0 反= 000 0 - 00 0 反= 111 1表示范围:-(2n-1-1) X (2n-1-1) 反码运算符号位可以参加运算,无需对符号位和绝对值进行计算(比原码简单),但仍存在问题, ,与原码相同,10,t课件,反码运算,用反码进行运算时,两数反码的和等于两数和的反码符号位也参加运算,当符号位产生进位时,需要循环进位,即把符号位的进位加到和的最低位上去, X Y 反 X 反 Y 反 X Y 反 X 反 -Y反,11,t课件,反码运算,举例X=+1001, Y= - 1011, 求X+YX+Y反 X反+ Y反 01001+10100 11101故 X+ Y = - 0010X=+1001, Y = - 0101, 求X+ YX+ Y反 X反+Y反 01001+11010 00011 (有进位) 1 (循环进位) 00100故 X+ Y = + 0100,反码未在计算机中实际使用,仅是一种过渡码制,12,t课件,补码,补码的表示符号部分同原码数的最高位为符号位,0表示正数,1表示负数数值部分与它的符号位有关对于正数,补码数值部分与原码数值部分相同对于负数,补码数值部分是将原码数值部分按位取反再加1 ,即在反码数值部分基础上加1加1是整体加1,不是每一位都加1,13,t课件,补码,补码举例给出下列数的原码、反码、补码(8位)X = + 1101 X 原 = 00001101 X 反 = 00001101 X 补 = 00001101 Y = 1110 Y 原 = 10001110 Y 反 = 11110001 Y 补 = 11110010,14,t课件,补码,表示范围0的表示?1000是谁的补码呢?范围?已知补码(-2n-1除外),如何获得原码?对于正数,原码数值部分与补码数值部分相同对于负数,符号为1,数值部分一种直观方法:减1再按位取反另一种方法:按位取反再加1对于一个正数:a=an-2an-3a1a0 ,(ai=0或1),唯一表示:000,定义为:-2n-1,-2n-1 X (2n-1-1),即,再做一次补为什么?,15,t课件,补码,补码运算补码表示法可以简化加法运算,并且可以将减法变成加法采用补码进行加减法运算,在计算机中只需要一套实现加法运算的线路,从而简化了计算机内部硬件电路的结构补码加法运算中不区分数符和数字,即符号位也参与加法计算, X Y补 X 补 Y 补 X Y 补 X 补 -Y补,.,16,t课件,补码,补码运算举例(用5位二进制补码表示数) A=+1011, B= - 0010, 求A-BA-B补= A补 + -B补A补=01011, -B补=00010,A-B=+1101,17,t课件,补码,补码运算举例(用5位二进制补码表示数) A=+1011, B= - 1110, 求A+BA+B补= A补 + B补A补=01011, B补=10010,A+B=-11,18,t课件,补码,补码运算(用5位二进制补码表示数)不考虑符号位的进位问题 A=+1111, B= - 1101, 求A+BA+B补= A补 + B补A补=01111, B补=10011,A+B=+10,.,为何可以省略进位?,19,t课件,补码,补码运算(用5位二进制补码表示数)需要考虑符号位的溢出问题,即运算结果超出了机器能表示数的范围X1 = + 1101,X2 = + 1001Y1 = 1011,Y2 = 1100求X1 + X2 , Y1 + Y2, X1 补 + X2 补 = 01101 + 01001 = 10110 Y1 补 + Y2 补 = 10101 + 10100 = 01001,正溢出,负溢出,如何判断溢出?,.,20,t课件,本讲核心知识点,码制原码、反码、补码补码运算, X Y补 X 补 Y 补 X Y 补 X 补 -Y补,符号位参与运算忽略进位注意溢出,21,t课件,补码:提高探讨,补码的深入理解(1)已知补码(-2n-1除外),如何获得原码?另一种方法:按位取反再加1对于一个正数:a=an-2an-3a1a0 ,(ai=0或1) -a原数值部分= an-2an-3a1a0 -a补数值部分= an-2an-3a1a0+1 -a原数值部分+ -a补数值部分=2n-1 -a补数 = 2n-1 - -a原数 -a补数补数= 2n-1 -a补数原数= 2n-1 -a补数= 2n-1 (2n-1 - -a原数 ) = -a原数,X补补=X原 ?,_ _ _ _,22,t课件,补码:提高探讨,补码的深入理解(2)为什么符号位可以参与运算,但忽略进位?符号位参与运算,将补码看做无符号形式值 X补 = X mod 2n因此,A补 + -B补 = A mod 2n + (-B) mod 2n(若A,B0)= A + (2n -B) 忽略进位,即对2n取模 (A + (2n -B) ) mod 2n= (A -B) mod 2n= A-B补,.,23,t课件,纸质作业,第二章课后习题4、7、10、12这周四(11.12)上课交,24,t课件,谢谢!,25,t课件,