【计算机组成】运算器与运算方法 ⟳
定点数运算及溢出⟳
- 定点数加减法:减法化加法,用补码直接相加,忽略进位
- 溢出:运算结果超出了某种数据类型的表示范围
- 溢出检测方法:统一思想概括为正正得负或负负得正则溢出,正负或负正不可能溢出
- 方法1:V = XYS + XYS(XY为两个加数的符号位,S为结果的符号位,_表示非),那么V = 1则为溢出
- 方法2:V = C0 ⊕ C1(C0是最高数据位产生的进位,C1是符号位产生的进位),那么V = 1则为溢出
- 方法3:V = Xf1 ⊕ Xf2(数据采用变型补码 Xf1Xf2 X0X1X2X3... )
注意:以上方法都是利用正正得负负负得正则溢出为出发点的电路设计
补码一位乘法——Booth算法⟳
[x·y]补=[x]补·(−y0+∑yi2−i)=[x]补·[−y0+y12−1+y22−2+…+yn2−n]=[x]补·[−y0+(y1−y12−1)+(y22−1−y22−2)+…+(yn2−(n−1)−yn2−n)]=[x]补·[(y1−y0)+(y2−y1)2−1+…+(yn−yn−1)2−(n−1)+(0−yn)2−n]
总结起来设计数字电路的规则就是:
- 为 00 或者为 11 的时候,直接右移一位
- 为 01 的时候,加 x 的补,然后右移一位
- 为 10 的时候,加 -x 的补,然后右移一位
其实第一行和最后一行都能设计数字电路,为什么要从第一个式子推到最后一个式子呢?原因有两点:
- 二进制中如果有 0,可以不进行运算
- 如果有连续的 1 可以减少计算次数,比如 a \* 001111100 = a \* (010000000 - 0000000100)
所以每次判断 y_{n+1} - y_{n} 就可以减少计算次数了
参考:https://www.cnblogs.com/xisheng/p/9260861.html
定点数除法⟳
略,没找到好的资料
浮点数加减法⟳
- 求阶差,阶码小的对齐大的
- 尾数加减
- 结果规格化
请你务必,一而再,再而三,三而不竭,千次万次,毫不犹豫地救自己于这世间水火。
笔者将不定期更新【考研或就业】的专业相关知识以及自身理解,希望大家能【关注】我。
如果觉得对您有用,请点击左下角的【点赞】按钮,给我一些鼓励,谢谢!
如果有更好的理解或建议,请在【评论】中写出,我会及时修改,谢谢啦!
笔者将不定期更新【考研或就业】的专业相关知识以及自身理解,希望大家能【关注】我。
如果觉得对您有用,请点击左下角的【点赞】按钮,给我一些鼓励,谢谢!
如果有更好的理解或建议,请在【评论】中写出,我会及时修改,谢谢啦!
本文来自博客园,作者:Nemo&
转载请注明原文链接:https://www.cnblogs.com/blknemo/p/12811116.html
顶
关注
评论
收藏
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理