- ベストアンサー
マイコンでの小数点の計算
現在,マイコンを使用してセンサの値をAD変換して取り込むプログラムを作成しています. AD変換は8bitの分解能で0~255の値が取得できます. その値を0~100に置き換えたい, 例えば センサの値が0なら0 128なら50 255なら100 上記のようなことを実現するためにはどのようなプログラムを書けばよいでしょうか? 宜しくお願い致します.
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
・100かけて255で割る。 ・0~255それぞれに対応する値を先に計算しておいて参照する。
その他の回答 (3)
- wormhole
- ベストアンサー率28% (1626/5665)
>この時,小数点以下の数値はどうなるのでしょうか? #2の方のいわれてる通り、必要であれば残せばいいです。 どうやって残せばいいのかは固定小数点や浮動小数点などを調べてみてください。
- koujikuu
- ベストアンサー率43% (429/993)
BIT 7=1 50.0000 100/2 BIT 6=1 25.0000 100/4 BIT 5=1 12.5000 100/8 BIT 4=1 06.2500 100/16 BIT 3=1 03.1250 100/32 BIT 2=1 01.5625 100/64 BIT 1=1 00.7813 100/128 BIT 0=1 00.3906 100/256 をBCD加算すれば近似値が求められると思います、但し0xFF -> 100 にはならないので修正が必要です (0-255) 256 -> (0-100) 101 なので、101/X データを加算し小数点以下を丸めた方がいいかも知れません。
お礼
ご回答ありがとうございます. BCD加算で近似値を求める方法もあるのですね. 勉強になりました.
- Gotthold
- ベストアンサー率47% (396/832)
> この時,小数点以下の数値はどうなるのでしょうか? あなたが小数点以下の数値を必要としているなら残せば良いし、 必要ないなら切り捨てれば良いです。
お礼
ご回答ありがとうございます. intに代入すれば勝手に切り捨てられるんですね.
お礼
早速のご回答ありがとうございます. >>・100かけて255で割る。 この時,小数点以下の数値はどうなるのでしょうか? 例えば233 * 100 / 255 = 91.3725...