计算机组成原理——计算机的运算方法

第6章 计算机的运算方法

6.1 无符号数和有符号数

一、无符号数

寄存器的位数反映无符号数的表示范围

在这里插入图片描述

二、有符号数

1. 机器数与真值

真值:带符号的数(就是平时书写的数字)
机器数:符号数字化的数(就是原码)

在这里插入图片描述

小数点的位置是约定的如果是小数定点机那么小数点位置在符号位之后**,如果是整数定点机那么小数点在最后一位

2. 原码表示法

原码就是机器码

整数:

在这里插入图片描述

小数:

在这里插入图片描述

原码的特点:
简单、直观
[+0]原 ≠ [-0]原

3. 补码表示法

能否 只作加法 ?
找到一个与负数等价的正数 来代替这个负数就可使 减 ——>加

一个负数加上 “模” 即得该负数的补数
一个正数和一个负数互为补数时它们绝对值之和即为 模数

整数:

在这里插入图片描述

小数:

在这里插入图片描述

求补码的快捷方式:

正数的补码就是其本身,负数的补码为其反码+1

4. 反码表示法

反码就是原码每位取反

5. 移码表示法

补码表示很难直接判断其真值大小,因为补码负数符号位为1,正数为0,这样负数就比正数大了

所以将真值整体加上一个常数,使得变大,使得所有数均为正数,这样就可以方便比较了

移码只有整数没有小数

在这里插入图片描述

用移码表示浮点数的阶码能方便地判断浮点数的阶码大小

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

一、定点表示

分为小数定点机和整数定点机

小数点的位置是约定的如果是小数定点机那么小数点位置在符号位之后,如果是整数定点机那么小数点在最后一位

二、浮点表示

N = S×r^j 浮点数的一般形式
S 尾数 j 阶码 r 尾数的基值

S 小数、可正可负
j 整数、可正可负

1. 浮点数的表示形式

在这里插入图片描述

Sf 代表浮点数的符号
n 其位数反映浮点数的精度
m 其位数反映浮点数的表示范围
jfm 共同表示小数点的实际位置

2. 浮点数的表示范围

上溢 阶码 > 最大阶码

下溢 阶码 < 最小阶码 按 机器零 处理

在这里插入图片描述

3. 浮点数的规格化形式

在这里插入图片描述

4.浮点数的规格化

在这里插入图片描述

基数 r 越大,可表示的浮点数的范围越大
基数 r 越大,浮点数的精度降低

三、IEEE 754 标准

在这里插入图片描述

6.3 定点运算

一、移位运算

目的:在计算机中,移位与加减配合,能够实现乘除运算

移位指数据相对小数点移动

码制添补代码
正数原码、补码、反码0
负数原码0
负数反码1
负数补码左移添0
右移添1

算术移位:有符号数的移位
逻辑移位:无符号数的移位

二、加减法运算

1. 补码加减运算公式

连同符号位一起相加,符号位产生的进位自然丢掉

整数 [A]补 + [B]补 = [A+B]补(mod 2n+1)
小数 [A]补 + [B]补 = [A+B]补(mod 2)

整数 [A – B]补 = [A+(–B )]补 = [A]补 + [ – B]补 (mod 2n+1)
小数 [A – B]补 = [A+(–B )]补 = [A]补 + [ – B]补 (mod 2)

2. 溢出判断
(1) 一位符号位判溢出

最高有效位的进位异或符号位的进位 = 1

(2) 两位符号位判溢出

结果的双符号位 相同 未溢出
结果的双符号位 不同 溢出

最高符号位 代表其 真正的符号

3. 补码加减法的硬件配置

在这里插入图片描述

A、X 均 n+1 位
用减法标记 GS 控制求补逻辑

三、乘法运算

乘法 运算可用 加和移位实现

由乘数的末位决定被乘数是否与原部分积相加,然后 1 位形成新的部分积,同时 乘数 1 位(末位移丢),空出高位存放部分积的低位。

被乘数只与部分积的高位相加

硬件:3 个寄存器,其中2个具有移位功能1 个全加器

特点:

  • 绝对值运算
  • 逻辑移位
  • 用移位的次数判断乘法是否结束
原码一位乘的硬件配置

在这里插入图片描述

A、X、Q 均 n+1 位
移位和加受末位乘数控制

四、除法运算

小数定点除法 x* < y*
整数定点除法 x* > y*
被除数不等于 0
除数不能为 0

恢复余数法

余数 Ri>0 上商 “1”,2Ri – y*
余数 Ri<0 上商 “0”, Ri + y* 恢复余数

不恢复余数法(加减交替法)

上商“1” 2Ri – y*
上商“0” 2Ri + y*

特点:

  • 上商 n+1 次
  • 第一次上商判溢出
  • 移 n 次,加 n+1 次
  • 用移位的次数判断除法是否结束
原码加减交替除法硬件配置

在这里插入图片描述

A、X、Q 均 n +1 位
用 Qn 控制加减交替

6.4 浮点四则运算

一、浮点加减运算

x = Sx · 2j^x
y = Sy · 2j^y

1. 对阶
(1) 求阶差

在这里插入图片描述

(2) 对阶原则

小阶向大阶看齐

2. 尾数求和

尾数通过定点数加法求和

3. 规格化

原码: 不论正数、负数,第一数位为1
补码: 符号位和第 一数位不同

左规

尾数左移一位,阶码减 1,直到数符和第一数位不同为止

右规

当 尾数溢出( >1)时,需 右规
尾数右移一位,阶码加 1

4. 舍入

(1) 0 舍 1 入法
(2) 恒置 “1” 法

5. 溢出判断

在这里插入图片描述

  • 8
    点赞
  • 93
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值