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

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

进制运算的基础

定义:

常用的进制

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

1024 不同进制表达方式

二进制运算的基础

  • 正整数N,基数为r

计算机组成原理——计算篇
  • 二进制转十进制(整数

计算机组成原理——计算篇
  • 十进制转二进制(整数

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

计算机组成原理——计算篇
  • 二进制转十进制(小数

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

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

有符号数与无符号数

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

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

+237=011101101

-237=111101101

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

原码表示法:

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

原码表示法一些问题

  • 判断两个操作数的绝对值大小
  • 使用绝对值大的数减去绝对值小的数
  • 对于符号值,以绝对值大的为准

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

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

二进制的补码表示法

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

计算方法:

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

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

例题:

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

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

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

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

补充:

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

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

二进制的反码表示法

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

计算方法

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

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

例题:

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

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

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

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

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

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

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

计算方法

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

例题:

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

定点数与浮点数

定点数:

  • 纯小数:符号位 | 小数点 | 数值位
  • 纯整数:符号位 | 数值位 | 小数点
    计算机组成原理——计算篇
  • 若不是纯小数或者纯整数:乘以比例因子以满足定点数保存格式(也就是浮点数表示法)

浮点数:

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

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

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指的就是比特位数)

例题:

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

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

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

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

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

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

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

使用双符号位进行计算:

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

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

定点数的减法运算

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

例题:

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

浮点数的加减法运算

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

x y 来进行加减法运算:

计算机组成原理——计算篇
  • 浮点数尾数运算简单
  • 浮点数位数实际小数位与阶码有关
  • 阶码按小阶看齐大阶的原则
    计算机组成原理——计算篇

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

  • 使用补码进行运算
  • 减法运算转换为加法运算:A-B=A+(-B)

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

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

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

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

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

尾数规格化(右规):

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

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

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

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

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

5.溢出判断

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

综合例题:

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

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

浮点数的加减运算流程

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

浮点数的乘除法运算

乘法的计算方法

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

除法的计算方法

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

计算流程

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

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

Original: https://www.cnblogs.com/ZhouKali/p/16450326.html
Author: Zh0uKal1
Title: 计算机组成原理——计算篇

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622186/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球