计算机组成原理——计算篇

                  进制运算的基础

定义:

  1. 进位制是一种计数方式,又称进位计数法或位值计数法
  2. 用有限种数字符号来表示无限的数值
  3. 进位制的基数或底数:使用的数字符号的数目(二进制:01,十进制:0-9)

常用的进制

  1. 二进制: 用0、1表示的
  2. 二十进制: 玛雅文明的玛雅数字、因努伊特的因努伊特数字
  3. 六十进制: 实践、坐标、角度等量化数据
  4. 十六进制: [0-9]和A、B、C、D、E、F

为什么计算机经常使用8进制&16进制

  1. 计算机喜欢二进制,但二进制表达太长了
  2. 使用大进制位可以解决这个问题
  3. 八进制和十六进制可以满足2^n次方的要求

1024不同进制表达方式

  1. 二进制:0b10000000000
  2. 八进制:0o2000
  3. 十六进制:0x400

二进制运算的基础

  • 正整数N,基数为r

  • 二进制转十进制(整数

  • 十进制转二进制(整数

  • 二进制转十进制(小数

  1. 十进制转二进制(小数

有符号数与无符号数

问题:前面学习的都是正数的二进制表达方式,那么负数怎么办呢?

:在十进制中一般用正负号(+/-)表达正负数,我们可以联想一下计算机也可以用0和1来表示这两种状态,如:

+237=011101101

-237=111101101

怎么判断他是数字位还是符号位?

原码表示法:

  1. 使用0表示正数,1表示负数
  2. 规定符号位位于数值第一位
  3. 表达简单明了,是人类最容易理解的表示法
  4. 使用两个字节,16位的数字做一个例子如图:

原码表示法一些问题

  1. 0有两种表示方式:00、10
  2. 原码进行运算非常复杂,特别是两个操作数符号不同的时候
  • 判断两个操作数的绝对值大小
  • 使用绝对值大的数减去绝对值小的数
  • 对于符号值,以绝对值大的为准

此时我们需要找到另外一种表达方法来简化这样的操作

  • 希望找到不同符号操作数更简单的运算方法
  • 希望找到使用正数代替负数的方法
  • 使用加法代替减法操作,从而消除减法

二进制的补码表示法

补码的定义:补码是用来解决负数在计算机中的表示问题的。正数的补码就是其本身;负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1,即在反码的基础上+1。

计算方法:

(x是需要计算的二进制,n是二进制的位数)

例题:

补充:

计算机里都是以补码形式存储数据。

补码的0只有一种表示方式:0,0000。

二进制的反码表示法

反码的定义:反码是用来辅助原码转换成补码的。正数的反码就是其本身;负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。

计算方法

(x是需要计算的二进制,n是二进制的位数)

例题:

原码、补码、反码之间的关系

小数的二进制补码、反码表示法

计算方法

例题:

定点数与浮点数

定点数:

  1. 概念: 小数点固定在某个位置的数称之为定点数
  2. 定点数的表示方法:
  • 纯小数:符号位 | 小数点 | 数值位
  • 纯整数:符号位 | 数值位 | 小数点

    3.若不是纯小数或者纯整数: 乘以比例因子以满足定点数保存格式(也就是浮点数表示法)

浮点数:

  1. 概念:浮点数是指小数点位置可以浮动的数据
  2. 原理: 浮点数它相当于一个定点数加上一个阶码,阶码表示将这个定点数的小数点移动若干位。由于可以用阶码移动小数点,因此称为浮点数。
  3. 浮点数的表示格式:N = S * r^j (S:尾数,r:基数,j:阶码)

阶码符号位 | 阶码数值位 | 尾数符号位 | 尾数数值位(尾数必须使用纯小数)

4.浮点数的表示范围: 假设阶码数值取m位,尾数数值取n位

  • 阶码能够表示的最大值和最小值:2^m-1、-(2^m-1)
  • 阶码表示范围: [-(2^m-1),2^m-1]
  • 尾数能够表示的最大值和最小值: 1-2^-n、2^-n
  • 尾数表示范围:[2^-n,1-2^-n]、[-(1-2^-n),-(2^-n)]
  • 单精度浮点数:使用4字节、32位来表达浮点数(float)
  • 双精度浮点数:使用8字节、64位来表达浮点数(double)

5. 浮点数的规格化

  • 尾数规定使用纯小数
  • 尾数最高位必须是1

6. 例子

定点数与浮点数对比

  • 当定点数与浮点数的位数相同时,浮点数表示范围更大
  • 当浮点数尾数为规格化时,浮点数精度更高
  • 浮点数运算包含阶码和尾数,浮点数运算更为复杂
  • 浮点数在数的表示范围、精度、溢出处理、编程等方面均优于定点数
  • 浮点数在数的运算规则、运算速度、硬件方面不如定点数

定点数的加减法运算

定点数的加法运算

计算方法:

(n指的就是比特位数)

例题:

最后一个例题出现了问题:发生了溢出,运算结果无效。溢出是不能解决的,只有规避,所以我们说平时在写代码的时候,如果涉及数值处理的话,一定要特别注意溢出,从程序上避免溢出的计算,否则会导致结果不正确。

怎么判断溢出呢?(双符号位判断法)

使用双符号位进行计算:

定点数的减法运算

例题:

浮点数的加减法运算

浮点数加减法运算过程:对阶→尾数求和→尾数规格化→舍入→溢出判断

xy来进行加减法运算:

  1. 对阶:对阶的目的是使得两个浮点数阶码一致,使得尾数可以进行运算
  • 浮点数尾数运算简单
  • 浮点数位数实际小数位与阶码有关
  • 阶码按小阶看齐大阶的原则

操作:小阶转换跟大阶一致,尾数进行相应的右移

  1. 尾数求和
  • 使用补码进行运算
  • 减法运算转换为加法运算:A-B=A+(-B)

3.尾数规格化(左规): 如果不满足此格式,需要进行左移,同时阶码相应变化,以满足规格化

  • 对补码进行规格化需要判断两种情况:S>0和S<0

尾数规格化(右规):

  • 一般情况下都是左移
  • 双符号位不一致下需要右移(定点运算的溢出情况)
  • 右移的话需要进行舍入操作
    4.舍入
  • “0舍1入”法(二进制中的四舍五入法)

例:

(最后一位是0的话不需要进行加1,舍入后记得阶码要加1)

01入法可能会发生溢出,如:

此时需要进行两次或两次以上的舍入操作

5.溢出判断

  • 定点运算双符号位不一致位溢出
  • 浮点运算尾数双符号位不一致不算溢出,因为尾数双符号位可以进行右规
  • 浮点运算主要通过阶码的双符号位判断是否溢出。如果尾数规格化后,阶码双符号位不一致,则认为是溢出

综合例题:

浮点数的加减运算流程

浮点数的乘除法运算

乘法的计算方法

除法的计算方法

计算流程

例子

【计算机组成原理】计算机组成原理——计算篇相关推荐

  1. 计算机组成原理考试计算题,计算机组成原理常考计算题.doc

    文档介绍: 计算机组成原理常考计算题 1. 机器数字长为8位(含1位符号位),当X= -127 (十进制)时,其对应的二进制表示, (X)原表示,(X)反表示,(X)补表示,(X)移表示分别是多少? ...

  2. 计算机组成原理(分析计算题解析)内附填空,选择,解答题答案

    目录 关于计算机组成原理的填空,选择以及解答题 1. 2. 3. 1.所以首先将整数和小数部分转化成二进制 2.移动小数点 3.得到二进制存储格式 4. 5. 6. 7. 8. 9. 计算机组成原理( ...

  3. 计算机组成原理中英对照篇,信息科学系课程介绍(中英对照).doc

    文档介绍: 信息科学系课程介绍(中英对照)序号:1课程编码:14001010课程名称:计算机基础学分:1周学时:2开课系部:信息科学系预修课程:无修读对象:信息管理与信息系统专业本科生课程简介:主要介 ...

  4. 计算机组成原理——计算机基本组成

    文章目录 其他文章 计算机的基本硬件组成 CPU 内存 主板 I/O 设备 显卡 冯若依曼和哈佛 冯·诺依曼体系结构概述 冯·诺依曼体系工作原理(CPU工作原理) 哈佛结构 哈佛结构和冯诺依曼结构区别 ...

  5. 天津大学计算机组成原理,天津大学计算机学院计算机组成原理复习材料.docx

    天津大学计算机学院计算机组成原理复习材料 机器语言--计算机的原始指令组成的一种可供人和计算机进行交流的语言.(1)翻译:在执行用L1写得程序之前生成一个等价的L0指令序列来替换它,生成的程序全部由L ...

  6. 计算机基础和组成原理——学习资料

    计算机科学/专业导论 网易云课堂: 计算机专业导论 中国大学MOOC: 计算思维导论 计算机专业导论 计算机组成原理 网易云课堂: 计算机组成原理 中国大学MOOC: 哈工大计算机组成原理 计算机组成 ...

  7. 哈工大威海计算机组成原理课程设计,哈工大威海计算机学院 计算机组成原理课件80 x86.ppt...

    <哈工大威海计算机学院 计算机组成原理课件80 x86.ppt>由会员分享,可在线阅读,更多相关<哈工大威海计算机学院 计算机组成原理课件80 x86.ppt(21页珍藏版)> ...

  8. 哈工大计算机学院计算机组成原理,哈工大威海计算机学院计算机组成原理.ppt...

    <哈工大威海计算机学院计算机组成原理.ppt>由会员分享,可在线阅读,更多相关<哈工大威海计算机学院计算机组成原理.ppt(21页珍藏版)>请在装配图网上搜索. 1.8086/ ...

  9. 合工大计算机组成原理ppt,合工大 计算机组成原理 计算机组成原理提纲.pdf

    合工大 计算机组成原理 计算机组成原理提纲 计算机组成原理计算机组成原理 合肥工业大学 计算机与信息学院 陈陈 田田 2013.12.12 提 纲 11 考试形式和试卷结构考试形式和试卷结构 2 考查 ...

最新文章

  1. 阿里巴巴为什么不建议直接使用 Async 注解?
  2. Mysql:命令选项、配置选项、(全局、会话)系统变量、状态变量:命令选项...
  3. Amh/Nginx更改网站根目录
  4. Android开发概要记录
  5. 联想即将推出预装 Fedora 的 ThinkPad 笔记本电脑
  6. Spring-tx-TransactionInfo
  7. 从 Web1.0 到 3.0 你不知道的互联网的演进史!
  8. 2d游戏地图编辑器_C语言实现大型2D格斗游戏,1.8万行代码!
  9. 【Linux】TOP命令
  10. HDU 4293 Groups (线性dp)
  11. 谷歌技术三宝之BigTable(转)
  12. python二进制显示图片_python 读取二进制 显示图片案例
  13. 文件服务器索引服务,ftp服务器文件索引
  14. js中继承的方法总结(apply,call,prototype)
  15. C语言基于easyx的打字训练软件。
  16. Python的面试题/测试题汇总,带答案
  17. 一文解析交通大数据是如何解决拥堵问题的
  18. 微信公众号——创建标签,给粉丝打标签。
  19. Flink系列文档-(YY03)-Flink编程基础API-Source
  20. Plotly中绘制三种经典的股票交易图表(含视频讲解)

热门文章

  1. 【算法】最长公共子序列(LCS)
  2. Node系列-爬虫踩坑笔记
  3. pycharm 关闭右边黄色警告提示
  4. jQuery-动画效果(王者荣耀手风琴案例)
  5. python怎么找出最大数_python怎么找出最大数
  6. Log4j简单xml配置
  7. IPsec VPN 实验
  8. git head指向老版本_16. branch与HEAD的理解,使用git reset恢复到过去的某个版本
  9. Go是Google的语言,而不是我们的语言
  10. 十月3倍销量于特斯拉的比亚迪,新增量在何处?