计算机中数的表示:在计算机中,能够被硬件直接识别和处理
计算机的运算方法
运算器的设计
6.1无符号数和有符号数
6.1.1无符号数
寄存器的位数,反应了无符号数的表示范围:8位的寄存器,表示范围为0——255,16位的寄存器,表示的范围为0——65535
6.1.2有符号数(包含数值部分和符号部分)
机器数和真值
保存在计算机中的数为机器数,真值是平常用的带符号的数值
小数点的位置是以约定的方式给出,没有专门的硬件来表示小数点的位置,设计机器是,默认的将小数点放到符号位的后面。
符号位同样以约定的方式给出,这里默认为符号位在最高位,既最左面的位。
当需要表示的数为整数时,表示的数的小数点的位置位于最右边,既数值的后边,以约定的方式给出。
以上两种都为定点数的表示。

原码表示法:
定义:
整数:最高位为符号位,正数为0,负数为1,这种方法使 0 有两种表示方法,一种最高位为0,其余为0,另一种最高位为1,其余为0.相当于带符号的绝对值表示。

小数:从真值到原码,如果是整数,加一个符号位,正数加 0,负数加 1,后面的数值部分照抄,就得到原码的机器表示。如果是小数,则小数点前面的一位就用于符号的表示,正数用 0,负数用 1,后面的数值部分照抄,就得到到了机器表示。要表示一个数,需要给出位数,以及位数是否包含符号位。

原码的特点:简单、直观,但是使用原码做加法时,会出现如下问题:使用原码进行加法过程,可能做加法,也可能做减法。能不能对加法做归一化处理,使其只做加法运算,既找到一个与负数等价的正数,来代替这个负数,使减法转化成加法

补码表示法
补的概念:在以某个数为模(比如12)的记录数据的过程,将一个数变化成另一个数,既可以向前,也可以向后(比如从 6 变换到 3,则可以减去 3,也可以加上 9,称+9 是 -3 的以 12 为模的补数)。既一个负数加上“模”既得到该负数的补数,一个正数和一个负数互为补数时,他们的绝对值之和为模数。比如存放一个正数,并且规定存放正数的寄存器的位数为 4位,则计数器(模16),每当这个数超过计数器的模,则丢掉模(16)。
补码的定义:
整数:n 为整数的位数,不包括符号位

小数:机器数有位数约定,受到计算机硬件资源的限制。这里小数使用了模 2,故小数点前面有1位,如果模4,小数点前面有两位,模 8的话,小数点前面有 3位……

求补码的快捷方式: 若为正数,则加符号位 0,其余不变。若为符号,则加符号位 1,再将数值位取反,再加上1,既的负数的补码。

同样,由补码转换成原码时,当真值为负时,原码可用补码除符号位不变,每位取反,末位加 1求得。补码的最大的好处在于将减法转换成加法,对运算进行统一。补码形式下,0 具有唯一的表示方法,负值的部分,可以把绝对值最大的负数使用原码中的 负0 的表示方法,故相对于原码,可以多一个负的数值的表示。

反码表示法:相当于在补码表示法中的最后一步,加 1 的步骤,不再需要;同样受到计算机字长的限制,受到计算机资源的限制。
定义:
整数:

小数:

三种机器数小结:最高位为符号位,书写上用“,”(整数)或“.”(小数)将数字部分和符号位隔开;对于正数,原码=补码=反码;对于负数,符号位为1,其数值部分,原码除符号位外每一位取反末位加 1——>补码,原码除符号位外每位取反——>反码;
若机器数字长为 8 位(其中 1 位为符号位),对于整数,当其代表无符号数、原码、补码、反码时,对应的真值的范围:

若已知[y]补,求[-y]补:

移码表示法:补码表示很难直接判断其真值的大小;若计算机中的字长为 n 位,则移码表示不论要表示的数是正数或者负数,不做区别,直接将其加上 2 的 n 次方,作为移码表示。移码相当于将数值在数轴上平移了 2 的n 次方,这样获得相同的半轴上的数据,故称为移码;移码中符号位的 1 表示正数, 0 表示负数;移码只对整数情况作了定义,没有对小数情况做定义。
移码的定义:

移码和补码的比较:移码和补码只相差一个符号位,比如:

真值、补码、移码的对照表:

移码的特点:正负 0 的移码表示具有唯一性;最小的真值的移码表示全为 0;用移码表示浮点数的阶码;能方便的判断浮点数的阶码的大小
6.2数的定点表示和浮点表示
小数点按约定的方式标出
6.2.1 定点表示:小数点在数值部分的前面

根据定点计算机约定的小数点的位置,将其分为两类:小数定点机,整数定点机

6.2.2浮点表示
浮点数的表示形式:


如上,Sf(代表浮点数的符号),n(其位数反应浮点数的精度),m(其位数反应浮点数的表示范围),jf 和 m(共同表示小数点的实际位置)
浮点数的表示范围:

设机器数字长为24位,欲表示±3万的十进制数,试问在保证数的最大精度的前提下,除阶符,数符各站一位,阶码和尾数各取几位?
要满足最大的精度要求,则尾数应该尽可能的大,故:
浮点数的规格化形式:尽可能的保证数据的精度,让有效的位数尽可能多

浮点数的规格化:对尾数的数据进行左移或者右移,使其最高位满足规格化形式

基数 r 值越大,可表示的浮点数的范围越大,基数 r 值越大,浮点数的精度越低
例如:m=4,n=10,r=2,尾数规格换后的浮点数表示范围:

6.2.3举例

注意在求该数的二进制表示时,19=16+2+1=10011,除以128,相当于右移7位。

注意58=32+16+8+2=111010
机器零:当浮点数尾数为 0时,不论其阶码为何值,按机器零处理;如果浮点数阶码等于或者小于它所表示的最小数时,不论尾数为何值,按照机器零处理,如m=4,n=10 时,当阶码和尾数都用补码表示时,机器零为:

当阶码用移码,尾数用补码表示时,有利于机器中的“判 0”电路的实现,机器零为:

6.2.4IEEE 754 标准

尾数为规格化表示:若使用二进制表示,基值为2,意味着不论原码,反码,补码,尾数的第一位数值的真值一定是 1,则非“0” 的有效位最高位为“1” (隐含),相当于增加了尾数的位数,增加了精度。

6.3定点运算
6.3.1移位运算
移位运算的数学意义:移位的机器用语,相当于值相对于小数点进行移位(小数点不动),左移,绝对值扩大,右移,绝对值缩小 ;注意采用的数制,对应移位的扩大或缩小的倍数;在计算机中,移位和加减配合,能够实现乘除 运算
算术移位规则:
符号位不能变:

对于机器数字长为 8 位(含一位符号位),则对于A=+26=16+8+2,有:

对于机器数字长我 8 位(含一位符号位),则对于A=-26=-(16+8+2),有:
原码:

补码:

反码:

算术移位的硬件实现:

算术移位与逻辑移位的区别:
算术移位(有符号数的移位),逻辑移位(无符号数的移位)

例如:01010011,逻辑左移的结果为:10100110,算术左移的结果为:00100110(此时高位1 移丢)
例如:10110010,逻辑右移的结果为:01011001,算术右移的结果为:11011001

6.3.2加减法运算
补码加减法运算的公式:连同符号位一起相加,符号位产生的进位自然丢掉

举例
机器数是存放在计算机中的数,故一定要考虑字长,一定要考虑寄存器的长度,能够存储多长的数据,其中符号位是几位
数值位是几位;同时要考虑补码运算过程中,没有发生溢出,既没有超出机器数能够表示的范围。
若机器数字长是8 位(含一位的符号位),且A=15=8+4+2+1=0001111,B=24=16+8=0011000,用补码求A-B:

溢出的判断:
一位符号位判溢出:参加操作的两个数(减法时,即为被减数和“求补”以后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出(故两个操作数的符号不同时,不会发生溢出)。硬件实现:最高有效位的进位和符号位的进位的异或结果等于 1 ,则溢出。
两位符号位判溢出:同样范围的数,相加,结果不会超过该范围的两倍,故使用两个符号位应足够判断溢出

补码加减法的硬件配置:

6.3.3乘法运算
分析笔算乘法:

笔算乘法改进:

改进后的笔算乘法过程:


原码乘法:





6.3.4除法运算
分析笔算除法:

笔算除法和机器除法的比较:

原码除法:

恢复余数法:


不恢复余数法(加减交替法):是对恢复余数法的改进



原码加减交替除法硬件配置:

6.4浮点四则运算
浮点数的加减运算

对阶:
求阶差(用两个阶码做减法操作,在这里使用补码实现):对阶过程,尾数向左移,可能造成高位的 1 的丢失,不可取;尾数向右移,可能造成 1 的丢失,影响精度,相对可取;故对阶的过程应该是小阶向大阶对齐

例如:

尾数求和
规格化(尽可能的利用计算机的资源):若计算机以 2 为基值,则规格化的定义为:

规格化数的判断:


规格化方式:左规(尾数左移一位,阶码减 1,直到数符和第一数位不同为止),比如:

规格化方式:右规(尾数右移一位,阶码加 1,直到数符和第一数位不同为止;尾数的绝对值大于 1 时(既尾数溢出),需要右规,既尾数出现01.XXX……X或者10.XXX……X时);
举例:


舍入:数据的长度超过了计算机中存储这个数据的物理器件能够保存的数据的长度,这样,数据的低位进行处理,进而使数据保持合适的精度;在对阶和右规过程中,可能出现尾数末位丢失引起误差,需要考虑舍入;
常用舍入方法: 0 舍 1 入法,恒置“1”法
阶符和数符都使用 2 位,便于判别是否溢出


溢出判断

浮点的乘除运算
6.5算术逻辑单元
6.5.1ALU电路
Ai,Bi表示输入,Ki表示取不同的运算,Fi表示输出,ALU不具有记录功能,故输入输出和寄存器相联;

6.5.2快速进位链
并行加法器:两个n+1位的数,可以利用这个加法器以并行的方式完成加法的运算;A,B输入两个数的对应位的值,C输入从低位出来的值,C输出当前高位的进位值,S输出当前的位的相加的值;由于A,B的值是已知的,C的值是低位的进位,故决定输出的S的快慢,既ALU的快慢的决定因素是进位的快慢;


串行进位链

并行进位链:n 位加法器的进位同时产生,以 4 位加法器为例:

单重分组跳跃进位链:n 位全加器分为若干小组,小组中的进位同时产生,小组和小组之间采用串行进位,以 n =16为例:
双重分组跳跃进位链:n 位全加器分为若干大组,大组中又包含若干小组;每个大组中小组的最高位进位同时产生;大组和大组之间采用串行进位 ;以 n=32为例:

双重分组跳跃进位链,大组进位分析:

双重分组跳跃进位链的大组进位线路:

双重分组跳跃进位链的小组进位 线路:

n=16双重分组跳跃进位链:

n=32 双重分组跳跃进位链:

计算机组成原理学习(哈工大视频)第六章 计算机的运算方法相关推荐

  1. 【计算机组成原理 学习总结】第六章 总线系统(2)

    6.4 总线的定时和数据传送模式 6.4.1 总线的定时 总线的信息传送过程:请求总线.总线仲裁. 寻址.信息传送.状态返回 定时:事件出现在总线上的时序关系 (1)同步定时 (2)异步定时 6.4. ...

  2. 哈工大刘宏伟计算机组成原理学习笔记(西工大软件学院计算机组成原理考试复习)

    第一章 计算机系统概论 1.1计算机系统简介 一.计算机的软硬件概念 1.计算机系统 系统复杂性管理的方法 (1)抽象 1.2计算机的基本组成 一.冯.诺依曼计算机的特点 1.计算机由五大部分组成:运 ...

  3. 计算机组成原理白中英第七章,计算机组成原理第七章课件(白中英版).ppt

    <计算机组成原理第七章课件(白中英版).ppt>由会员分享,可在线阅读,更多相关<计算机组成原理第七章课件(白中英版).ppt(32页珍藏版)>请在人人文库网上搜索. 1.计算 ...

  4. 计算机组成原理学习笔记(第二部分 I/O设备和运算)

    学习视频 随看随记 1000,0000 是-128的补码 数的左移表示增加,右移表示减小 输入输出系统 概述 输入输出系统的发展概况 早期I/O设备不多,采用分散连接,CPU和I/O设备串行工作使用程 ...

  5. 计算机组成原理唐朔飞第六章知识点总结,计算机组成原理(唐朔飞)教材笔记 第六章 计算机的运算方法...

    1. 把符号"数字化"的数成为机器数,而把带"+"或"-"符号的数称为真值: 2. 原码表示法,约定整数的符号位与数值位之间用逗号分隔,小数 ...

  6. 【计算机组成原理 学习总结】第三章 存储系统(1)

    3.1存储系统概述 3.1.1存储系统的层次结构 (1)程序的局部性原理 在某一时间内频繁访问某一局部的存储器地址空间,而对此范围外的地址空间则很少访问的现象 时间局部性:最近被访问的信息很可能还要被 ...

  7. 评价微型计算机总线的性能指标,计算机组成原理学习笔记(3):总线

    文章目录 课程笔记导览 附录:英语解释 第三章 总线 3.1 总线的基本概念 使用总线的原因: 总线的定义 总线上信息的传送 总线结构举例 单总线结构 面向CPU的双总线结构 以存储器为中心的双总线结 ...

  8. 计算机组成原理学习笔记第1章 1.3——实验一 计算机性能测试

    计算机组成原理学习笔记第1章 1.3--实验一 计算机性能测试 本篇笔记整理:Code_流苏(CSDN) 目录 计算机组成原理学习笔记第1章 1.3--实验一 计算机性能测试 0️⃣思维导图(自制) ...

  9. 计算机组成原理实验 第六章,计算机组成原理实验

    第一部分 数字电路基础 第一章 基本逻辑关系和基本逻辑门电路 第一节 基本逻辑关系和基本逻辑门电路概述 第二节 复合逻辑门 第三节 OC门和三态输出门 第二章 逻辑代数基础 第一节 逻辑代数的基本关系 ...

  10. 计算机组成原理数据流通图作用,计算机组成原理-第14-15讲(第5章).ppt

    <计算机组成原理-第14-15讲(第5章).ppt>由会员分享,可在线阅读,更多相关<计算机组成原理-第14-15讲(第5章).ppt(36页珍藏版)>请在人人文库网上搜索. ...

最新文章

  1. php函数细节_php strip_tags()函数使用注意细节
  2. malloc()与calloc区别【转】
  3. 【Git】Git 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )
  4. jQuery笔记总结
  5. mysql 查看表v空间自增涨_mysql文件结构及InnoDB引擎表空间整理
  6. 前端学习(2353):button按钮组件的使用
  7. 刚写的代码,就变成了遗留系统?
  8. 阿里文娱再调整:李捷出任阿里影业总裁,戴玮任文娱COO
  9. 持续集成部署Jenkins工作笔记0004---Subversion环境要求
  10. 牛津教授吐槽DeepMind心智神经网络,还推荐了这些多智能体学习论文
  11. 华硕B85M-G主板安装心得
  12. 微信小程序毕业设计、基于微信棋牌室管理小程序毕设
  13. mysql指定取值范围_MySQL中各种字段的取值范围(转)
  14. 公众号采集,公众号批量自动采集,微信公众号免费文章采集
  15. 华为计算机视觉博士,华为视觉计划发布,要做“智能世界的眼睛”
  16. unreal4特性介绍
  17. WHQL认证和代码签名
  18. antdvue upload组件的customRequest自定义上传事件一直uploading处理方法
  19. 主叫号码未显示【一分钟教你解决】
  20. [转]formValidator的一些验证实例

热门文章

  1. c语言中用户验证程序,C语言用户登录系统账户密码比对
  2. 黑马程序员 java基础复习二 之面向对象
  3. nvim 的编译与安装
  4. 游戏感:虚拟感觉的游戏设计师指南——第二章 游戏感与人类感知能力
  5. 【第十章 线性代数之 特征向量与特征值】3Blue1Brown
  6. 官网下载python,下载pycharm
  7. 十六进制转十进制-华为算法题
  8. python|解决Cannot open D:\python\Anaconda\envs\tensorflow\Scripts\pip-script.py(重装pip)
  9. 信管家源代码c语言,AK老唐信管家软件指标 火车轨系统指标源码
  10. Vue Props是什么