定点运算——除法

本文深入解析定点运算中除法的实现原理,包括符号位处理、数值部分计算、溢出判断及运算流程,通过具体步骤展示如何将笔算除法转换为计算机除法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定点运算——除法

分析笔算除法

在这里插入图片描述

将笔算除法转换成计算机除法

在这里插入图片描述

操作步骤

在这里插入图片描述

符号位

提出除数的符号位 和被除数的符号位,二者进行异或运算,得到最终结果
在这里插入图片描述

数值部分

取出除数和被除数的数值部分,求绝对值,然后用绝对值相除在这里插入图片描述

约定
  1. 小数之间做除法,结果仍旧是小数,否则溢出;整数之间做除法,结果仍旧为整数,否则溢出
  2. 被除数,不为0,否则,直接输出零
  3. 除数不为零,否则报错
运算流程

在这里插入图片描述
下述为数值部分
在这里插入图片描述
4. 第一次相减,结果为负数,商的末位上0

在这里插入图片描述
5. 商逻辑左移一位,空出最低位,等待上商;余数恢复,逻辑左移一位,扩大两倍,再做差

在这里插入图片描述
6. 差值为正,商的原码末位上1

在这里插入图片描述
7. 将结果作为新的余数,逻辑左移;商逻辑左移,空出最低位,等待上商

在这里插入图片描述
8. 继续将余数与除数做差,结果为正,商的末位上1
在这里插入图片描述
9. 将新得到的差继续左移,作为新的余数。商的原码逻辑左移,空出末位,等待上商。

在这里插入图片描述
10. 结果为负数,商的末位上0
在这里插入图片描述
11. 差值逻辑左移,作为新的余数。商逻辑左移,空出末位,等待上商

在这里插入图片描述

  1. 结果为正数,商的末位上1,得到最终结果
列表

在这里插入图片描述
在这里插入图片描述

提炼修改——不恢复余数运算

在这里插入图片描述
将上述过程转为表达式
在这里插入图片描述

运算表格

基本过程不变,只不过转为了公式运算,再次具体的流程省去。虽然是转为了公式,但是第一步仍就要做差,确定第一次上商的数值,由此确定下一次的位数

在这里插入图片描述

总结
  1. 四位机器数,总共上了五次商,移了四次位。第一次上商是为了判定结果是否溢出,既是是否为大于一的数。
  2. 用移动的次数去判定出发是否结束
  3. 对于恢复余数法和加减交替法,实际上是一致,只不过对其进行了简单得变形,本质都是一样,判定余数和除数之间的关系,然后根据判定的情况,确定下一步上商的值。
### 定点整数除法在考研中的相关内容 定点整数除法是计算机组成原理的重要部分之一,在考研中通常会涉及其基本概念、算法流程以及具体的计算方法。以下是关于定点整数除法的核心知识点及其可能的考试形式。 #### 1. 基本定义与背景 定点整数除法是指两个定点整数相除的操作,主要用于数值范围有限的情况下的算术运算。这种运算广泛应用于嵌入式系统和其他资源受限的环境中[^2]。 在计算机组成原理中,定点整数除法常通过 **加减交替法** 实现,这种方法基于补码表示和逐步逼近的思想完成除法操作[^1]。 --- #### 2. 补码加减交替法的具体步骤 补码加减交替法是一种常见的定点整数除法实现方式,适用于带符号数的除法运算。以下是该方法的主要特点: - 初始设置:将被除数放入商寄存器高位,除数取绝对值并置入相应位置。 - 循环迭代:每次比较余数与除数大小关系,决定是否借位或调整商值。 - 符号处理:最终根据原始被除数和除数的符号确定结果的正负性。 此方法的优点在于无需额外引入复杂的硬件支持即可完成高效的除法运算[^3]。 ```python def complement_division(dividend, divisor): """ 使用补码加减交替法模拟定点整数除法 :param dividend: 被除数 (int) :param divisor: 除数 (int) :return: 商 和 余数 """ sign = (-1 if ((dividend < 0) ^ (divisor < 0)) else 1) dividend_abs = abs(dividend) divisor_abs = abs(divisor) quotient = 0 remainder = dividend_abs while remainder >= divisor_abs: remainder -= divisor_abs quotient += 1 return sign * quotient, remainder ``` --- #### 3. 可能的题型 针对定点整数除法的内容,考研题目可能会以以下几种形式出现: ##### (1)填空题/选择题 考察学生对定点整数除法基础知识的理解程度,例如: - 补码加减交替法的特点是什么? - 下列哪种情况可能导致定点整数除法发生溢出? ##### (2)简答题 要求描述某种特定条件下定点整数除法的工作原理或者优缺点分析。例如: - 解释为什么补码加减交替法适合用于定点整数除法?[^4] ##### (3)综合应用题 提供一组具体数值,让学生手动计算其对应的商和余数,并验证结果正确性。例如: - 已知 `X=-15` 和 `Y=4`,试用补码加减交替法求解 X/Y 的结果。 --- #### 4. 注意事项 在解答有关定点整数除法的问题时需要注意以下几个方面: - 正确区分无符号数和有符号数的不同处理方式; - 特殊情况下(如除数为零),需明确指出错误条件; - 结果应考虑机器字长限制带来的截断误差问题[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值