paku@kobeです。 ラーメンさんが書かれているように、レンジが狭いようであれば固定少数でいい かと思います。おそらくPIDのパラメータは十進数で扱うと思いますので2の n乗をかけてすべて整数に変換してH8で演算します。最後に少数に変換します。 たとえば、下4ビットを少数とすると乗数と被乗数に64を掛けます。 2.1×5.6であれば134×358=47972 掛け算をしたので少数点位置が4ビットシフトしたので4ビット右シフトします。 47972 > 749 実数に変換するには64で割ればよいので 749÷64=11.7となります。(制御ループのなかでは必要ありません) 割り算の場合は最初に被除数に64を掛けておきます。 2.1÷5.6であれば134÷358ですが 134×64÷358=24と演算します。 実数に変換するには64で割ればよいので 24÷64=0.38となります。 浮動少数演算は演算パッケージを導入して変数をfloat、doubleで宣言または型 変換すれば浮動小数で演算できます。ただ、かなり遅くなりますのでPIDの演 算であれば、ややこしいですが固定少数演算を推奨します。