こんにちはSOです。プログラミングのクラスで問題を割り当てられていなかったので、純粋に楽しみ/問題を解決するために書かれた、最初の半重要なPC プログラムを書きました。皆さんの多くは、趣味で書いた最初の重要なプログラムを覚えていると思います。
私の問題は、コードの効率に満足していないことです。端末の I/O 制限によるものなのか、コード自体によるものなのかはわかりませんが、8 ビット以上の DAC 解像度ではかなり遅くなるようです。
コードにコメントしていないので、このプログラムで解決しようとしていた問題の説明を次に示します。
DAC の出力電圧は、ビット Bn、Bn-1 ... B0 を含む 2 進数とフルスケール電圧によって決まります。
出力電圧の式は次のようになります。
Vo = G( (1/(2^(0)))*(Bn) + (1/2^(0+1))*(Bn-1) + ... + (1/2^(0+n))*(B0) )
ここで、G は、すべてのビットの入力 B をフルスケール電圧にするゲインです。
コードを実行すると、アイデアは非常に明確になります。
私の問題は、コンソールに出力しているものは、108 行未満の C++ で実現できると思うことです。はい、ステップ電圧を事前に計算し、単純にテーブルをインクリメントしてレンダリングすることで簡単に実行できますが、このプログラムに対して私が持っている「自己要件」は、バイナリ表現された入力ごとに上記の一連の計算を実行することです。 .
私はその要件に夢中になるつもりはありません。このプログラムで、現在実行している式の性質を証明してもらいたいと思います。私が探しているのは、私の実装を一般的によりクリーンで効率的にする方法に関するいくつかの提案です。