计算机门电路计算原理,计算机组成原理算方法.ppt

计算机组成原理算方法

定点运算 移位 加 减 乘 除 移位运算 逻辑移位:对于无符号数的移位 算术移位:对于有符号数的移位 逻辑移位 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 逻辑左移 1 位 左边的 1 丢失 逻辑右移 1 位 右边的 1 丢失 0 0 逻辑移位的规则:空位填 0 算术移位 对于正数,其机器数无论用原码、补码还是反码表示,移位后的空位填 0 不论是正数还是负数,算术移位时,其符号位要保持不动 编码方式 填补代码 负数原码 0 负数补码 左移填 0 右移填 1 负数反码 1 对于负数,其机器数编码方式不同,移位后填补的代码也不同: 算术移位 移位操作 机器数 (原、补、反) 对应的真值 移位前 0, 0011010 +26 左移 1 位 0, 011010 0 +52 左移 2 位 0, 11010 00 +104 右移 1 位 0, 0 001101 +13 右移 2 位 0, 00 00110 +6 右移2位时,最低位丢 1,影响了精度 只要移掉的不是 1,那么,左移一位则扩大一倍,右移一位则减小一倍。 算术移位 操作 机器数 (补码) 真值 移位前 1, 1100110 -26 左移 1 位 1, 100110 0 -52 左移 2 位 1, 00110 00 -104 右移 1 位 1, 1 110011 -13 右移 2 位 1, 11 11001 -7 操作 机器数 (反码) 真值 移位前 1, 1100101 -26 左移 1 位 1, 100101 1 -52 左移 2 位 1, 00101 11 -104 右移 1 位 1, 1 110010 -13 右移 2 位 1, 11 11001 -6 负数补码左移填 0,右移填 1 负数反码左移、右移均填 1 编码方式 填补代码 负数原码 0 负数补码 左移填 0 右移填 1 负数反码 1 带进位的算术移位 1 0 0 0 1 1 0 1 C 0 0 0 1 1 0 1 1 移位前 算术左移位后 定点数的加、减法运算 计算机中基本运算 A – B = A + (-B),减法可以转换为加法来做 现代计算机中,采用补码进行加减法运算 补码加减法的基本公式(n 为数值位数): 用补码表示的两个机器数进行加法时,把符号位与数值位同等处理,结果取模 定点数加法仅能 用于整数之间, 或小数之间 定点数的加、减法:例子 0 . 1 0 1 1 + 1 . 1 0 1 1 1 0 . 0 1 1 0 mod 2 等价于:10.0110 mod 10.0000 = 0.0110 定点数的加、减法:例子 总会成功么? 用补码表示的机器数加减法为什么会出错?? 这是因为:A-B = -138,超出了8位字长所能表示的范围,这种超出 机器字长的现象,叫做“溢出”,因此,在定点加减法中,必须判断 结果是否溢出。 溢出判断 对于加法:只有在正数加正数,或者负数加负数时,才可能出现溢出 对于减法:只有在正数减负数,或者负数减正数时,才可能出现溢出 用一位符号位判断补码加减法溢出 假设机器字长为 4 位 用补码表示的数的范 围是:-8~+7 对于补码定点加、减法, 如果参加运算的两个 补码的符号相同,而 结果又与原操作数的 符号不同,则溢出。 用两位符号位判断补码加减法溢出 逗号前的两位都 用来表示符号位, 分别称作: “符号位进位”、 “最高有效位” 有两位符号位的补码被称作“变形补码” 比使用一位 符号位判断 溢出的方法快。 用变形补码判断溢出:例子 灯泡电路的例子,并联,串联,开关 * * 机器数的表示 如何在机器码中表示一般的浮点数? - 0.1011 小数点的位置 - 1100 + 1100 + 0.1011 真值 机器数 小数点的位置 小数点的位置 小数点的位置 纯小数 整数 机器数的表示 一旦符号数字化以后,符号和数值就形成了一种新的编码,在运算过程中,符号位能否和数值部分一起参加运算?如何参加运算,符号位又如何处理? 这些问题与符号位和数值位所构成的编码有关系! 机器数的常用表示方式: 原码 补码 反码 移码 人 机器 原码 x = + 110110 x = - 110110 数值位是6位 x = + 0.1101 x = - 0.1101 符号参与了运算! n = 6 原码 一种最简单的机器数表示形式 符号位为 0 表示正数,为 1 表示负数 数值位就是真值的绝对值 真 值 原码表示的机器数 + 1011 0,1011 - 1100 1,1100 + 0.1011 0. 1011 - 0.1100 1. 1100 整数原码 (x 是真值, n 是数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值