1. 定点数运算及溢出

定点数加减法:减法化加法,用补码直接相加,忽略进位

溢出:运算结果超出了某种数据类型的表示范围

溢出检测方法:统一思想概括为正正得负或负负得正则溢出,正负或负正不可能溢出

  方法1:V = XYS + XYS(XY为两个加数的符号位,S为结果的符号位,_表示非),那么V = 1则为溢出

  方法2:V = C0 ⊕ C1(C0是最高数据位产生的进位,C1是符号位产生的进位),那么V = 1则为溢出

  方法3:V = Xf1 ⊕ Xf2(数据采用变型补码 Xf1Xf2 X0X1X2X3...  )

PS:以上方法都是利用正正得负负负得正则溢出为出发点的电路设计

2. 补码一位乘法——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的补,然后右移一位

PS:其实第一行和最后一行都能设计数字电路,为什么要从第一个式子推到最后一个式子呢?原因有两点:

  1)二进制中如果有0,可以不进行运算

  2)如果有连续的1可以减少计算次数,比如 a * 001111100 = a * (010000000 - 0000000100)

所以每次判断 yn+1 - yn就可以减少计算次数了

参考:https://www.cnblogs.com/xisheng/p/9260861.html

3. 定点数除法 --- 略,没找到好的资料

4. 浮点数加减法

  (1)求阶差,阶码小的对齐大的

  (2)尾数加减

  (3)结果规格化

最新文章

  1. 数据库中的two phase locking
  2. PopupWindowAction breaking MEF import?
  3. PHP浮点数计算
  4. DALSA Coreco - 图像处理软件(Sapera LT )
  5. Hive(一):架构及知识体系
  6. 写实例学习html5 WebSocket
  7. Java中的异常处理机制的简单原理和应用
  8. [五]JFreeChart实践四之直线图
  9. 更改xcode上iphone模拟器颜色的方法--备用
  10. E - 归并排序 求逆序数
  11. Arduino 时钟模块(clock module) DS1306
  12. [UWP小白日记-7]转换MVA学院的XML字幕为SRT (二)
  13. 手机自动化测试:Appium源码之api(1)
  14. Redhat系统上开启Telnet服务
  15. python3-深浅copy
  16. 【Python】基础知识
  17. 下载一个新的app之后,如果分析、鉴赏?
  18. 大数据入门第十二天——azkaban入门
  19. Maven常用指令
  20. 【CTF MISC】文件内容反转方法-2017世安杯CTF writeup详解

热门文章

  1. SpringCloud实战8-Bus消息总线
  2. heartbeat.go
  3. 磁盘IOPS计算与测量
  4. Spring事务(一) Markdown 版
  5. hydra暴力破解ssh服务器密码
  6. eShopOnContainers 知多少[8]:Ordering microservice
  7. nodeJs的nodemailer发邮件报错hostname/IP doesn't match certificate's altnames怎么解决?
  8. Mybatis之旅第六篇-关联查询
  9. Windows下安装tesserocr
  10. WebGL three.js学习笔记 创建three.js代码的基本框架