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