1ん年前、ですがASCIIを直接演算する方法を アッセンブラで試しました。 直接演算方式は十進方式はASCIIをBCD(4ビット)として扱いましたが ダブルBCDもバイナーリーも文字変換を含めると ASCII方式と余り速度は変わりませんでした。 (メモリーレジスタは倍になりますが・・) 九九式(かけ算テーブル検索)や 1+2+2式 (値を2倍したテーブルを作って、乗除算を加減算に置き換える) も試しました。 ルート演算は中学校で習った方法をそのまま使いました。 倍々精度で出現した端数誤差の問題が、一挙に解決しました。 ではまた mozilla_315@xxxxxxxxx wrote: > はじめまして、horiと申します。 > 最近、H8/3694Fで動く電卓を作ろうと思い、 > Cでプログラミングを始めました。 > 簡単な仕様ですが、 > > answer(答え) : double > siki(式) : char[256] > 演算子が+の場合 > answer = answer + atof(siki) > > となっております。 > > 答え(double)をsprintf関数で文字列にしたいのですが、 > うまくいかないみたいです。 > > char ans_str[30] = ""; > char siki[20] = "+62.9"; > double answer = 321.45; > > answer = answer + atof(siki); > sprintf(ans_str, "%+f", answer); > > どなたかお詳しい方お助け願います。 > >