[H8-ML(5781)] Re: C言語の基本でしょうが
From: "kazuaki kamei" <kkamei@xxxxxxxxxxxxxxxxx>
Date: 2006年01月27日(金)10時44分22秒
 paku@kobe さん
 ラーメンさん

ありがとうございます
レベルの低い質問で恐縮しています。

私は N88 BASIC とかやっていたので
 PI = 3.14
 R = 2*2*PI
 print R

こんな感じで Cも出来ないものかと質問しました。
本当にC言語はややこしいですね。

つまり、少数を含む計算は 0.01の位まで必要なら 100倍して
計算結果を 100で割る と言う事ですね。
そして得られる結果は、正数部のみ と言う事でしょうか。

やっぱり めんどくさいですね・・・  C言語は。
もっと努力しないと・・・・・ ありがとうございます。


が書かれているように、レンジが狭いようであれば固定少数でいい
> かと思います。おそらく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の演
> 算であれば、ややこしいですが固定少数演算を推奨します。

スレッド概略
[5764(R)](起点)
 └[5779(U)]
   └[表示中]
     ├[5782(1)]
     └[5783(2)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]