微型计算机原理王忠民PPT,微型计算机原理2__王忠民著.ppt

微型计算机原理2__王忠民著

重点内容 掌握数的概念及数制转换 掌握补码的运算、溢出的判别方法 [例]: Thank you very much 本章重点和难点分析 本章的重点和难点在于掌握数值转换及补码运算。 一、数制转换 数制转换重点要掌握十进制数转换为二进制数的方法,其转换一般用除2取余法(整数部分)和乘2取整法(小数部分)。 除了上述方法外,在实际应用过程中,还有一种称为拼凑的方法。 拼凑法:由该转换数最大的2的倍数逐步相减,并把逐步相减所记录的最大的2的倍数按其权值排列。 二、补码的加减运算及溢出判断 补码的加减运算的特点是符号位一同参加运算。作减法时,可将减数变补与被减数相加来实现。运算时要注意字长、数值范围及溢出判断。一般只有在同号相加或异号相减时,才可能产生溢出。 谢谢大家! 一个0有两种 表示方法! [+0]反 = 0 0000000 [-0]反 = 1 1111111 反码表示方式存在的问题 对整数进行加减 运算只有通过结果 才能确定符号 7 + -3 = 4 3 - 7 = -4 -3 - -4 =-1 -4 + 3 = 1 -4 - -3 = 1 反码进行加减法时存在的问题 例如,当n=8时,用反码计算: -4 + -3 = -7 1111 1011 + 1111 1100 ? +111110111 4 + -3 ? +-8 0 产生 溢出 100000000 ? ? 数的补码表示 (two’s complement) 补码的表示范围: –2n–1 ~ (2n–1–1) 求补码的方法 根据定义求补码 写出对应正数的原码, 按位取反+1 N=8 -128~+127 N=16 -32768~+32767 Ex.7: 已知:a=+2,b=–2,根据定义求a和b的补码[a]补和[b]补,设n=8。 根据公式有: ① [a]补 = a = [a]原 = (0000 0010)2 ② [b]补 = 2n – |b| = 28– |–2| = 28 – 2 1 0000 0000 - 10 1111 1110 Solution 2n就是模数 Ex.8: 已知:a=+2,b=–2,直接写出a和b的补码[a]补和[b]补。设n=8。 Solution ① [a]补 = [a]原 = (0000 0010)2 0 0 0 0 0 1 0 1 ② 先写出b的原码表示 1 1 1 1 1 1 0 1 ③ 除符号位外,数据位按位取反+1 Sign bite 数据部分 [b]补 [b]原 更一般的求负数的补码的方法: ① 先写出负数对应的正数的二进制表示; ② 连同符号位一起按位取反,然后再加上1。 Ex.9: 已知:b=–2,写出补码[b]补。设n=8。 Solution 0 0 0 0 0 1 0 0 ① 先写出+2的原码表示 1 1 1 1 1 1 0 1 ② 所有的位按位取反+1 当n=8时,反码的表示范围是? -128 ~ +127 [-2]补 [+2]原 为什么负数补码的编码多一个? [-128]补=[–28-1]补= 28–|–27| = 28 – 27 = 2 ? 27 – 27 = 27 = (1000 0000)2 当n=8时, –28-1 (-128)的补码是? Discussion 这是-128的补码 还是-0的补码? [–0]补= 28–0 = (1 0000 0000)2 – 0 = (0000 0000)2 = +0 补码可以 唯一表示0 ★ 可以唯一表示0,不存在+0和-0的问题。 ★ 计算机系统中采用补码运算仅用加法器就可实现所有算术运算;结果也为补码形式。 ★ 符号位可以与数值部分一起参加运算。 根据补码的定义,对于[a]补±[b]补有规则: [a]补-[b]补= [a-b]补 [a]补+[b]补= [a+b]补 补码表示的优点 Ex.10: 已知 a=+2,b=–3,设n=8,用补码加法计算 a+b。 根据 [a]补+[b]补= [a+b]补有: [a+b]补 =[+2]补+[–3]补 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 + 1 1 1

第二章 1. 将下列十进制数转换成二进制和十六进制 (1)129.75 = 100000001.11B = 81.CH (2)218.8125 = 1101 1010.1101B = DA.DH (3) 15.625 = 1111.101B = F.AH (4)47.15625 = 101111.00101B = 2F.28H 2. 将下列二进制数转换成十进制和十六进制 (1)111010B = 58 = 3AH (2)10111100.11B = 188.875 = BC.E H (3) 0.11011B = 0.84375 = 0.D8 H (4)11110.01B = 30.25 = 1E.4H 4、完成下列16进制的加减法运算。 (1)0D14B H (2) 9C28.E H (3) 1678 .FC H (4) -80D7 H 5. 计算下列表达式的值 (1)128.8125+10110101.1011B+1F.2H = ( 101010101.101 ) B (2)287.68-10101010.11B+8E.EH =( 103.CE ) H (3) 18.9+1010.1101B+12.6H-1011.1001B = ( 36.525 ) D 7. 写出下列以补码表示的二进制数的真值: 1)[X]补= 1000 0000 0000 0000 ?X = - 1000 0000 0000 0000 = - 215 = - 32768 (2)[Y]补= 0000 0001 0000 0001 ?Y = + 0000 0001 0000 0001 = +257 (3)[Z]补= 1111 1110 1010 0101 ?X = - 000 0001 0101 1011 = - 347 (4)[A]补= 0000 0010 0101 0111 ?X = + 0000 0010 0101 0111 = +599 9、设有变量…….. X+Y = 1B8 H Y+Z =161 H Y+Z=13B H Z+V=0CC H (1) 不正确 不正确 不正确 正确 (2)正确 正确 正确 溢出 12. 试计算下列二进制数为无符号数、原码、反码、补码、8421BCD码时分别代表的数值大小。若为非8421BCD数时请指出。 (1)10001000B 无符号数:27+23= 136 原码: - 000 1000 = - 8 反码: - 111 0111 = - 119 补码: - 111 1000 = - 120 8421BCD码: 88 2)00101001B 无符号数:25+23+ 20 = 41 原码: 41 反码: 41 补码: 41 8421BCD码: 29 3)11001001B 无符号数:27+26+ 23+20 = 201 原码: - 100 1001 = - 73 反码: - 011 0110 = - 54 补码: - 011 0111 = - 55 8421BCD码: 非8421BCD码 (4)10010011B 无符号数:27+24+ 21+20 = 147 原码: - 001 0011 = - 19 反码: - 110 1100 = - 108 补码: - 110 1101 = - 109 8421BCD码: 93
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值