第2章原码反码补码课件

上传人:我*** 文档编号:147664307 上传时间:2020-10-12 格式:PPT 页数:25 大小:274KB
返回 下载 相关 举报
第2章原码反码补码课件_第1页
第1页 / 共25页
第2章原码反码补码课件_第2页
第2页 / 共25页
第2章原码反码补码课件_第3页
第3页 / 共25页
第2章原码反码补码课件_第4页
第4页 / 共25页
第2章原码反码补码课件_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《第2章原码反码补码课件》由会员分享,可在线阅读,更多相关《第2章原码反码补码课件(25页珍藏版)》请在金锄头文库上搜索。

1、,大学计算机基础,任小广 计算机学院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 但,数

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=+1010101

3、0 数值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 做减法,.,原码,原码特点 优点 简单直观,容易理解 缺点 零的形式不唯一 做加法和减法运算较为复杂,要对符号位和数值的绝对值大

4、小进行判断,大学计算机基础,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 反码的表示范

5、围 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+1010

6、0 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,补码,补码举

7、例 给出下列数的原码、反码、补码(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),大学计算机基础,1

8、5,唯一表示: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-

9、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 = +

10、 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

11、-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,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号