Felix

技术源于积累,成功始于执着! 个人邮箱:justlxy@mail.dhu.edu.cn QQ:1576109464

发布一个实用工具小程序(V0.05版)——乘除法转换为移位操作

3
阅读(2909)

我们知道,除法是一种很复杂的运算,无论是在软件层面还是在硬件层面,都是各种算法或者系统所极力避免的运算。然而,有的时候除法操作是不可避免的。本文介绍一种简单的方法,可以用于替代一些简单的除以常数或者乘以常数的操作。顺便花了两个小时,用C++写了一个简单的小程序,分享一下。

对于除以常数或者乘以常数,有两种常用的方式可以用于替代除法或者乘法:

第一种是,ROM寻址法。预先将计算结果放在ROM中,将变量作为ROM的地址,则可获得计算结果;

第二种是,移位相加法。可以将除以常数或者乘以常数转换为,将变量移位并相加的运算。而本文介绍的小程序就是用于实现这一功能的。

V0.02版运行效果如下图所示:

blob.png

blob.png

V0.03版运行效果截图:

blob.png

V0.03版更新内容:

  • 增加定点数的有限字长效应;

  • 增加将程序运行记录写入到TXT文件功能;

  • 优化部分内容。


V0.04版运行效果截图:

blob.png

V0.04版更新内容:

  • 除法模式的输入范围更改为1.0~1024.0之间的任意实数(之前为2~1024之间的整数);

  • 修复定点数有限字长效应功能中的Bug;

  • 增加变量名重置功能,方便直接复制;

  • 暂时屏蔽乘法转换功能;

  • 优化部分显示内容。


V0.05版运行截图:

blob.png

V0.05版更新内容:

  • 增加乘法模式;

  • 优化部分显示内容。

补充说明:乘法模式中不支持选择最大组合模式和精度控制模式,也不支持定点数的有限字长效应模式。


如果有需要C++源码的,或者愿意帮忙写一个GUI的,请通过QQ或者邮件联系我。


V0.02版EXE文件:

Mul_and_Div_to_ShiftV0.02.rar

V0.03版EXE文件:

Mul_and_Div_to_ShiftV0.03.rar

V0.04版EXE文件:

Mul_and_Div_to_ShiftV0.04.7z

V0.05版EXE文件:

Mul_and_Div_to_Shift_V0.05.7z


Baidu
map