第6章 计算机的运算方法

6.1无符号数和有符号数

无符号数

有符号数

1.机器数与真值

2.原码表示法





3.补码表示法


  • 由于无论是正数还是负数,得到的补数都可能是0101,为了区分是正数还是负数,要添加一个符号位
  • 27(符号位)+27(因为是负数,求补数时的方法)+(−1011000)2^7(符号位)+2^7(因为是负数,求补数时的方法)+(-1011000)27(符号位)+27(因为是负数,求补数时的方法)+(−1011000)
  • 当然,在引入符号位后,模数也随之而变化了(不然符号位就没啦)


  • 由负数的补码得到原码,也可以 ”符号位不变,其余按位取反然后加一“,然后再由原码得到真值

  • 如果是 “-0”,根据定义,求补码就是“2(因为小数点前为1位)加上x这个值“,然后2加上负的零,实际上是“10.00000”,然后因为符号位只有一位(取模),前面的1要丢掉,x的补码就是“0.00000”

  • 可以发现,正零和负零的补码形式相同,原码形式不同(无论是小数零还是整数零)

  • 补码 最大的好处就是 把减法转化成加法

4.反码表示法

  • 在原码转成补码的过程中,如果我们不加那个1,就是反码;实际上相当于,把这个模进行了减一,因此模变成了2n+1−12^{n+1}-12n+1−1

  • 在补码中我们是模2的,反码是最后那个加一我们不做了,那么如果说数值部分的长度是n位的话,我们最后那个加一,在小数中实际上加的是2−n2^{-n}2−n,因为,反码的模就是2−2−n2-2^{-n}2−2−n

    三种机器数的小结


  • 由补码得到原码再得到真值

5.移码表示法

  • 由真值得到移码,对正数和负数不做区别
  • 移码中,符号位为0的反而是负数,符号位为1的反而是正数
  • 通常情况下,因为移码的大小很好判断,所以移码我们通常用来表示浮点数据表示的阶码部分,阶码都是整数,所以,移码的定义中,也只给出了整数形式的定义,没有给出小数形式的定义


6.2 数的定点表示和浮点表示

定点表示

  • 定点表示 指的是 小数点按约定方式标出。在计算机中,没有专门的硬件来表示小数点,小数点的位置是由计算机体系结构设计人员在设计计算机体系结构的过程中约定的,在硬件实现和软件实现中都要遵守这个约定
  • 根据 小数点约定位置的不同,主要会有两种形式

浮点表示


  • 规格化数 就是 数值的最高位是非零的,也就是在二进制表示中这一位是1

  • 用有限的数据来表示无限多的实数

  • “保证数的最大精度的前提下“,谁影响数据的精度?—尾数的长度,如果要保证数的最大精度,必需让尾数尽可能的长,因此,要缩短阶码的位数,因此,阶码用4位,这样一共拿出来了6位,剩下的都是尾数部分,因此,尾数部分的长度是18位

  • 对浮点数进行规格化表示 的作用就是 尽可能保证数据的精度,如果不进行规格化,尾数的小数点后面可能有若干个零,放在计算机中,尾数的长度是有限的,超出给定长度的那部分尾数的值将被扔掉,会严重影响数据的精度,因此,我们要让它有效的位数尽可能多,因此,采用规格化形式

  • 这里说的“尾数最高位为1“中1指的是真值为1

  • 如果尾数采用四进制,那么两位二进制数表示了一位四进制数,要想进行规格化的话,那就是尾数的最高的两位不能全部为0

  • 在进行尾数的规格化中,如果尾数的基值为4,那么每次移位的时候,无论左右,都要移动两位二进制数的位置,表示的是一位四进制数,这里“左移两位”指的是二进制的两位

举例

  • 如何处理除以128,每右移一位相当于除以2,因此,除以128相当于右移7位,那么,我们就可以得到它的二进制形式了

  • 在由 定点表示 转化为 浮点规格化形式,首先要确定 小数点所在的位置,-58是一个整数,那么小数点在定点表示最后面,要把它变成浮点表示,小数点要放在哪个位置呢?“规格化”

  • 在表示 浮点机 中的 阶码 时,不要忘了题面要求阶码数值部分为4位,因此,在符号位和逗号后面还要补零

  • 又要求 阶码用移码表示,尾数用补码表示;因此可以用在浮点机的补码表示的形式下,给出这个值,因为尾数部分都是用补码表示相同的,阶码部分不同要用移码表示,移码和补码的区别就在于符号位,数值部分完全相同,符号位改成1

  • 当阶码用移码表示时,阶码是-16,在移码中我们加的是2^n,那么阶码是-16,如果用移码来表示,阶码就是全零

IEEE 754 标准

6.3 定点运算(上)

移位运算


  • 负数时,反码中的1相当于真值中的0

  • 进行左移一位时,机器数的符号位(0)不动,而是逗号后面的最高位会被丢掉,最低位空出来的位,因此是大于0的,我们要给它补零

  • 进行右移一位时,…,因为大于零,所以我们在前面补零

  • 左移一位时,符号位不动,移位的仅仅是数值部分,最高位被移掉,虽然移掉的是一个1,但是因为是补码,这个1相当于是0,右侧空出来的一位,根据前面讲的填补代码的规则,给它添上零

  • 右移一位时,最高位出现了一个空,根据前面补码的移位规则,这个空位我们要填1,这个1对应了真值中的0

  • 负数的补码中,如果左移丢1,这个1对应了真值中的0,所以丢掉1没有任何问题;反而如果丢掉0就会出错

  • 负数的补码中,如果右移丢1,这个1对应了真值中的1,所以丢掉之后会影响精度

  • 算术移位的符号位不动,符号依然保持着原来的符号,所以算术移位是有符号数的移位

加减法运算


  • 其实这两道题都有一个漏洞,那就是没有考虑机器字长,比如-9的二进制形式不一定是图上这种,数值位不一定是4位

  • 本题隐含条件 整数型定点机

  • 练习1 :这个题中假设,机器字长为5位,包括1位的符号位,而且这台机器是一个存小数的定点机;为什么答案是错误的呢?十进制求出结果应该是2016\frac{20}{16}1620​,这个结果是大于1的,超过了小数定点机能够表示的范围,这种情况叫做 溢出

  • 练习2 :这个结果依然是错的。如果机器字长为8位,含有1位符号位,是整数型的定点机,用补码表示的话,表示范围是-128到+127,一共256个数,那么真实计算结果是-138,超出了这种机器数表示方式能够表示的范围,仍然是 溢出

  • 如果一正一负相加不会发生溢出

  • 比如最高有效位的进位是1,对应了两个正数相加;符号位进位是0;发生溢出

  • 比如最高有效位的进位是0,对应了两个负数相加;

  • 0、0和1、1这两种情况,都不会发生溢出,对应了两个相同符号的两个数相加,或者是符号不同的两个数相加,

  • 在 结果的双符号位不同(10或者01),也就是说溢出的情况下,双符号位的第一个符号位是我们真正的符号位,第二个符号位实际上是运算的数值溢出的部分

乘法运算

计算机组成原理(哈工大刘宏伟)135讲(三)相关推荐

  1. 计算机组成原理-哈工大刘宏伟(第一篇)

    文章目录 计算机系统简介 课程概貌 讲述内容 特色 第一篇 概论 第一章 计算机系统概论 1.1计算机系统简介 一.计算机的软硬件概念 二.计算机系统的层次结构 三.计算机体系结构和计算机组成 1.2 ...

  2. 哈工大刘宏伟《计算机组成原理》课程框架总结

    哈工大刘宏伟老师的<计算机组成原理>采用自顶向下方法,系统介绍了计算机各个基本部件的体系结构.逻辑实现.控制方式.(一定数电基础是必要的,如果了解汇编更有助于理解部分内容) B站链接计算机 ...

  3. 计算机组成原理 (哈工大)

    计算机组成原理 (哈工大) 概论 简介 在体系结构中的地位 现代计算机的多态性 计算机系统 硬件 软件 系统软件 应用软件 系统复杂性管理 抽象 层次化 模块化 规则性 层次结构 高级语言 汇编语言 ...

  4. 计算机的定点运算器原理,计算机组成原理第二章第10讲定点运算器的组成.ppt

    <计算机组成原理第二章第10讲定点运算器的组成.ppt>由会员分享,可在线阅读,更多相关<计算机组成原理第二章第10讲定点运算器的组成.ppt(20页珍藏版)>请在装配图网上搜 ...

  5. 计算机组成原理机器码怎么求,计算机组成原理第二章第3讲数的机器码表示.ppt...

    <计算机组成原理第二章第3讲数的机器码表示.ppt>由会员分享,可在线阅读,更多相关<计算机组成原理第二章第3讲数的机器码表示.ppt(55页珍藏版)>请在人人文库网上搜索. ...

  6. 计算机组成原理乘法运算说明过程,计算机组成原理第二章 第8讲 定点乘法运算...

    计算机组成原理第二章 第8讲 定点乘法运算 (34页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 定点乘法运算,,2.3 定点乘法运算,2 ...

  7. 计算机组成原理加法减法运算,计算机组成原理第二章第5讲定点加法减法运算课件...

    计算机组成原理第二章第5讲定点加法减法运算课件 一般搬家时转盘与大梁间是固定的,开钻前应根据转盘对井架进行校正,如果中途换转盘,则要在空负荷下根据井架对转盘进行校正 一般搬家时转盘与大梁间是固定的,开 ...

  8. 计算机组成原理脱机运算器实验数据,实验三:脱机运算器实验报告.pdf

    大连理工大学大连理工大学 本科实验报告本科实验报告 课程名称 计算机组成原理实验 学院 系 软件学院 专 业 软件工程 班 级 0907 英 学 号 200892497 学生姓名 刘云伟 2011 年 ...

  9. 计算机组成原理 mov(r0),-(sp),第三章作业

    电子科技大学 廖建明 计算机组成原理第三章答案 2012060020029 王衡 1.某主存储器部分单元的地址码与存储器内容对应关系如下: 地址码存储内容 1000H A307H 1001H 0B3F ...

  10. 计算机组成原理(哈工大)学习笔记

    文章目录 计算机组成原理 一.计算机系统概论 1.1计算机系统简介 一.计算机的软硬件概念 二.计算机系统的层次结构 三.计算机体系结构和计算机组成 1.2计算机的基本组成 1.3计算机硬件的主要技术 ...

最新文章

  1. mysql 必读_MYSQL 调优和使用必读
  2. Xamarin.Android开发音乐播放器
  3. 正则表达式 以字符串开头_干货-Shell编程之正则表达式
  4. php array_diff 用法
  5. airpak模拟案例_AirPak建筑流体模拟软件介绍
  6. java jdom解析html_Javaweb中使用Jdom解析xml的方法
  7. 几个常用快速无损压缩算法性能比较
  8. Will----个人资料
  9. 重拾呐些記憶,前面の路,獨自繼續前往。
  10. frame-reday
  11. Occupancy Flow: 4D Reconstruction by Learning Particle Dynamics(1)
  12. 【云原生之k8s】k8s管理工具kubectl详解
  13. UE4虚幻引擎UI界面动画制作!
  14. JavaScript 表单对象 | 看完不会请来捶我
  15. python画三维坐标图像_用python检索xyz坐标并绘制三维图形
  16. C++解决报错常量中有换行符
  17. 关于4次挥手时等待2MSL的问题
  18. linux 密码设置问题
  19. CSU1020-真三国无双-模拟
  20. 5类适合参加IT培训的人,你在其中吗?

热门文章

  1. 【基础】ABAP不同变量类型之间数值大小比较
  2. SM50强制终结后台JOB进程
  3. 让ABAP开发者更加轻松的若干快捷键
  4. SD--RV_accounting_document_create函数的代码解读
  5. SAP 打开SAP物料帐期和财务账期
  6. 创建采购申请---BAPI_REQUISITION_CREATE
  7. SAP作业类型应用简介
  8. ABAP 负号 提前
  9. 永洪Desktop安装后启动提示缺少libv8_libbase.dll文件解决办法
  10. InMobi收购美国Sprint旗下数据和广告公司Pinsight Media