你好,所以。我刚刚写了我的第一个半重要的PC 程序,纯粹是为了好玩/为了解决问题而编写的,没有在编程课上分配问题。我敢肯定,你们中的许多人都记得你们为了好玩而编写的第一个重要程序。
我的问题是,我对代码的效率不满意。我不确定这是我的终端的 I/O 限制还是我的代码本身的限制,但对于 8 位或更高的 DAC 分辨率,它似乎运行得很慢。
我没有评论代码,所以这里是我试图用这个程序解决的问题的解释:
DAC 的输出电压由具有位 Bn、Bn-1 ... B0 的二进制数和满量程电压确定。
输出电压具有以下形式的方程:
Vo = G( (1/(2^(0)))*(Bn) + (1/2^(0+1))*(Bn-1) + ... + (1/2^(0+n))*(B0) )
其中 G 是使所有位的输入 B 的满量程电压高的增益。
如果你运行代码,这个想法会很清楚。
我的问题是,我认为我输出到控制台的内容可以用不到 108 行的 C++ 来实现。是的,它可以通过预先计算阶跃电压并简单地通过增量渲染表格来轻松完成,但是我对这个程序的“自我要求”是在某种程度上它为每个二进制表示的输入执行上述系列计算.
我不想对这个要求发疯。我希望这个程序能够证明它目前所做的公式的性质。我正在寻找的是关于如何使我的实施总体上更清洁和更高效的一些建议。