Hi. This is dimensin. > http://www5.airnet.ne.jp/tomy/cpro/mpa.htm これは興味深いサイトですね。紹介ありがとう。 MS-WindowsXPの電卓を走らせ、 123.145^123.456 = 1.6208034937136259788435103515621e+258 というような計算が出来るのを見て、実はMS頭イイと驚いていたのですよ。 当方の手持ちSHARP科学電卓でも10^100 (10e+100) が最大数なので、 こんな、とてつもない巨大な実数が計算できるのは、どうやっているのかな?と・・・。 澤口さんの言っているFPU(浮動小数点ユニット)は、 MPUのチップ内で、MPUコアとFPUは分離しているという意味で、 pakuさんの言っているのは、SH4では1チップ内にSHコアと、 FPUがどちらも内蔵されているということで、 見方が違うだけで、言っていることは同じですよね。 (念のため確認) > -----元のメッセージ----- > 差出人: "Sawaguchi Yuji" <issho@xxxxxxxxxxxxxxxxx> > 受取人: "h8@xxxxxxx" <h8@xxxxxxx> > 日付: 06/01/28 14:57 > 件名: [H8-ML(5791)] Re:C言語の基本でしょうが > > 澤口@一升金です。 > > dimensionさんの<20060128124241.dimension4500c@xxxxxxxxxxx>から > >long doubleの出来るMPUに興味があります。 > long double に限らず、ハードウェア演算で浮動小数点計算をサポート > している"MPU"というのは存在しないんじゃないでしょうか。 > 普通はソフトウェアライブラリで実現するか、FPU用の命令を生成するか > です。 > 技術計算用のソースライブラリを使えばメモリの許す限り何桁の精度で > も大丈夫ですが、計算時間はそれなりにかかります。 > ↓ > http://www5.airnet.ne.jp/tomy/cpro/mpa.htm > > 実制御ではそもそも入出力値はA/DコンバータやD/Aコンバータを使って > いますからたかだか16bit値ですので、計算途中でオーバーフローやアン > ダーフローを起こさないように計算順序や係数を調節して全て整数計算 > するのがいいでしょう。 > > PID制御はもともと制御精度や高速応答性を求められない場合に使う方式 > ですので、演算精度を上げてもさして応答性にメリットは出なくなります。 > 制御特性を改善するなら、Z変換などでディジタルフィルタを構成してや > る方向が現代制御の主流ですね。 > >