当前位置: 首页 > news >正文

计算机组成原理 | 无符号整数除法原理

计算机底层硬核科普无符号整数除法一场“步步为营”的减法游戏 大家好今天我们继续深入《计算机组成原理》。上一期我们聊了乘法计算机组成原理 | 原码一位乘法运算方法计算机组成原理 | 补码一位乘法运算方法计算机组成原理 | 实现乘法运算的三种方式今天我们要挑战它的逆运算——无符号整数除法。很多人觉得除法比乘法难因为乘法可以一直“加”而除法要“试”。在计算机底层做除法其实就像小时候列竖式一样是一个不断“左移、比较、做减法”的过程。准备好了吗让我们拆解一下这个让 CPU 既爱又恨的算法 核心概念什么是“精度”在开始之前我们要先搞清楚两个术语别被绕晕了双精度除法想象你有2n位的被除数比如 64 位去除了一个n位的除数比如 32 位。结果你会得到一个n位的商和一个n位的余数。风险是这种情况下商是有可能溢出的也就是商太大了寄存器装不下。单精度除法被除数和除数都是n位。结果商和余数也都不会超过n位。优势是这种情况下商不可能溢出除非除数为0。数学铁律无论怎么算永远满足公式被除数 商 × 除数 余数 准备工作把演员请上台在 CPU 开始计算前我们需要把数据安顿好。假设我们要算A/B 除数 (B)➡️ 放入寄存器 Y。被除数 (A)➡️ 放入寄存器组[R, Q]。注这里 R 存高位Q 存低位。如果是单精度通常要把 R 清零。计数器 Cn➡️ 设置为n代表我们要循环 n 次。⚠️特殊情况检查保命环节如果除数 Y 0完蛋了触发“除数为0”异常。这时候 CPU 会立刻停止呼叫操作系统来“救场”通常是报错或崩溃。如果被除数 除数这题太简单了商直接是 0余数就是被除数自己。除法单元直接下班不用算了。 核心大戏1n 轮处理这是最精彩的部分为什么是1n轮因为第一轮是用来判断会不会溢出的后面n轮才是正经算商的。 第 0 轮生死时速溢出判断这一轮非常特殊它决定了除法能不能继续。操作将被除数的高位部分R减去除数Y。即计算R-Y 。判断如果够减结果为正说明被除数的高位比除数还大这意味着商肯定大于2^n-1 寄存器装不下了。后果发生“商溢出”异常除法终止。如果不够减结果为负说明安全商不会溢出。后果必须恢复余数把刚才减去的 Y 加回来变回原来的 R然后直接进入下一轮正式计算。 第 1 ~ n 轮正经干活求商接下来的每一轮都在做三件事左移、减法、上商。左移将 [R, Q] 整体左移一位。这就好比我们在草稿纸上做除法时把被除数的下一位“落下来”。此时 Q 的最低位空出来了准备填商。做减法用新的 R 减去除数 Y。即 R-Y。上商关键一步如果够减结果为正说明这一位商是1。把 Q 的最低位设为 1R 保持减法后的结果不用恢复。如果不够减结果为负说明这一位商是0。把 Q 的最低位设为 0并且必须恢复余数把刚才减去的 Y 加回来让 R 变回减法前的样子。这就是经典的恢复余数法。计数计数器 Cn 减 1。当 Cn 变为 0 时除法结束此时Q 里存的是商R 里存的是余数。 举个栗子手把手教你算假设我们要计算 7/2 。设 n4。被除数 X 0111放入 [R, Q]初始 R0000, Q0111。除数 Y 0010。 第 0 轮溢出检测动作R-Y 0000-0010。结果不够减负数。说明没溢出安全恢复余数R 变回 0000。进入下一轮。 第 1 轮左移[R, Q] 左移一位。R0000, Q111_空位。减法R-Y0000-0010。结果不够减。上商商0。Q 变为 1110。恢复R 恢复为 0000。 第 2 轮左移[R, Q] 左移一位。R0001, Q110_。减法R-Y0001-0010。结果不够减。上商商0。Q 变为 1100。恢复R 恢复为 0001。 第 3 轮左移[R, Q] 左移一位。R0011, Q100_。减法R-Y0011-0010。结果够减上商商1。Q 变为 1001。保留R 保持 0001不需要恢复。 第 4 轮左移[R, Q] 左移一位。R0010, Q001_。减法R-Y0010-0010。结果够减上商商1。Q 变为 0011。保留R 保持 0000。 结束计数器为0商 (Q)0011(十进制 3)。余数 (R)0001。验证7/23 余1。完美 考研 / 期末 真题演练光看不练假把式来做两道经典题目热热身 题目一基础概念题【单选】在原码恢复余数除法运算中若某次余数为负则下列说法正确的是A. 商上 1余数左移一位B. 商上 0余数左移一位C. 商上 0恢复余数然后左移一位D. 商上 1恢复余数然后左移一位✅答案C解析这是恢复余数法的核心口诀“不够减商0加回除数恢复再左移”。如果选了 B你就忘了“恢复余数”这一步下次计算就会出错啦 题目二408 风格计算题设机器字长 5 位含1位符号位但在本题无符号除法中视为纯数值位x13y3。采用原码恢复余数法进行除法运算求商和余数。✅参考思路与解答转二进制x01101,y00011 。初始化R00000,Q01101 ,Y00011 。第0轮R-Y0恢复无溢出。第1轮左移R00000R-Y0商0恢复。第2轮左移R00001R-Y0商0恢复。第3轮左移00011R-Y0商1不恢复。第4轮左移R00000R-Y0商0恢复。第5轮左移R00001R-Y0商0恢复。最终结果商 (Q)00100(十进制 4)余数 (R)00001(十进制 1)验证13/34 余1。完全正确
http://www.rkmt.cn/news/1369371.html

相关文章:

  • 解锁Mac新玩法:用Whisky轻松运行Windows应用与游戏终极指南
  • Gifsicle:命令行中的GIF魔术师,让你的动画图片更轻更快
  • 深度换脸技术革新:roop-unleashed如何重新定义AI视频编辑
  • 智能电视上网难题?TV Bro浏览器:用遥控器轻松浏览网页的终极方案
  • EnKF(集合卡尔曼滤波)在气象预测与金融时间序列分析中的应用对比
  • 2026货运配送行业获客新玩法!推广营销靠谱的GEO优化系统公司,依托大模型流量稳稳接单 - 一点学习库
  • 零标注情感分析:GPT筛选+领域BERT+传统分类器实战
  • 具身智能的发展趋势对社会伦理道德有哪些挑战?
  • 如何用roop-unleashed突破数字创作极限:从技术黑盒到创意白盒的深度解析
  • 3个实战场景揭秘LogExpert:Windows日志分析的终极解决方案
  • 基于BERT与K-Means的法律文本智能分析:GDPR与CCPA合规自动化实践
  • 保姆级教程:在Ubuntu 22.04上搞定Mbedtls 3.6的编译与安装(附Python依赖避坑指南)
  • Ubuntu 20.04 apt update报错‘NOSPLIT’?别急着换源,先检查这个网络小细节
  • 企业级数据中台实战指南:AllData完整实施手册
  • 【Elasticsearch从入门到精通】第26篇:Elasticsearch Term级别查询——精确匹配与范围查询
  • 视频自动字幕生成终极指南:3分钟学会用VideoSrt制作专业字幕!
  • 索尼相机终极解锁指南:3分钟学会使用OpenMemories-Tweak解锁隐藏功能
  • LSLib终极方案:5步掌握神界原罪与博德之门3游戏资源处理专业技巧
  • Fast-GitHub终极加速指南:告别龟速访问,实现10倍下载速度
  • Windows HEIC缩略图终极指南:5分钟解决iPhone照片预览难题
  • vue项目简单创建方式
  • 在多模型聚合调用中,Taotoken的路由与容灾机制对服务可用性的提升感受
  • AWVS深度配置与实战避坑指南:从安装校准到漏洞验证
  • 2026 广州二手电柜回收全攻略:最新价格表 + 隐藏价值 + 避坑指南 + Top3 本地服务商推荐 - 品牌优选官
  • 【紧急】DeepSeek v6.5告警引擎重大变更:3类废弃API、2个强制迁移项与48小时兼容窗口倒计时
  • 【独家首发】DeepSeek-MoE稀疏微调技术白皮书(基于真实金融客服场景,F1提升19.7%,延迟下降41%)
  • 电商网站利用大模型增强商品推荐与客服对话的架构设计
  • AutoJs6在安卓11上的文件访问权限:从困惑到轻松掌握的完整指南
  • IPXWrapper:让经典游戏在现代Windows重获联机能力的终极方案
  • Thorium浏览器技术深度解析:基于Chromium的极致性能优化与隐私增强机制