[H8-ML(5782)] Re: C言語の基本でしょうが
From: Katsushi MATSUBAYASHI <matsu@xxxxxxxxxxxxxx>
Date: 2006年01月27日(金)11時05分05秒
久しぶりの投稿をさせていただきます。matsuです。

亀井さんは,単にC言語の表記をご質問されているのかも・・・。

double pi=3.14;
double r;
r=2*2*pi;
printf("%lf",r);

マイコンですと,printfはLCDに表示できるよう自作するか,
だれかが作ったのを利用するかになりますけど・・・。
(2次元倒立振り子を作ったとき,double型で間に合ってました。)

kazuaki kamei wrote at Fri, 27 Jan 2006 10:44:22 +0900 as follows.
> 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)](起点)
 └[5781(U)]
   └[表示中]


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


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