解決済みの質問

質問No.7914002
すぐに回答を!
すぐに回答を!
お気に入り投稿に追加する (0人が追加しました)
回答数4
閲覧数216
マイコンでの小数点の計算
現在,マイコンを使用してセンサの値をAD変換して取り込むプログラムを作成しています.
AD変換は8bitの分解能で0~255の値が取得できます.
その値を0~100に置き換えたい,
例えば
  センサの値が0なら0
          128なら50
  255なら100

上記のようなことを実現するためにはどのようなプログラムを書けばよいでしょうか?
宜しくお願い致します.
投稿日時 - 2013-01-27 17:53:55

質問者が選んだベストアンサー

回答No.1
・100かけて255で割る。
・0~255それぞれに対応する値を先に計算しておいて参照する。
投稿日時 - 2013-01-27 18:14:29
この回答を支持する
(現在0人が支持しています)
お礼
早速のご回答ありがとうございます.
>>・100かけて255で割る。
この時,小数点以下の数値はどうなるのでしょうか?
例えば233 * 100 / 255 = 91.3725...
投稿日時 - 2013-01-27 18:22:01

ベストアンサー以外の回答 (3)

回答No.4
>この時,小数点以下の数値はどうなるのでしょうか?

#2の方のいわれてる通り、必要であれば残せばいいです。
どうやって残せばいいのかは固定小数点や浮動小数点などを調べてみてください。
投稿日時 - 2013-01-27 21:10:09
この回答を支持する
(現在0人が支持しています)
回答No.3
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 データを加算し小数点以下を丸めた方がいいかも知れません。
投稿日時 - 2013-01-27 19:26:40
この回答を支持する
(現在0人が支持しています)
お礼
ご回答ありがとうございます.
BCD加算で近似値を求める方法もあるのですね.
勉強になりました.
投稿日時 - 2013-02-01 09:09:44
回答No.2
> この時,小数点以下の数値はどうなるのでしょうか?
あなたが小数点以下の数値を必要としているなら残せば良いし、
必要ないなら切り捨てれば良いです。
投稿日時 - 2013-01-27 18:42:44
この回答を支持する
(現在0人が支持しています)
お礼
ご回答ありがとうございます.
intに代入すれば勝手に切り捨てられるんですね.
投稿日時 - 2013-02-01 09:06:42
この質問は役に立ちましたか?
0人が「このQ&Aが役に立った」と投票しています
もっと聞いてみる

関連するQ&A

この他の関連するQ&Aをキーワードで探す

関連するガイド記事

    回答募集中

    同じカテゴリの人気Q&Aランキング

    -PR-

    OKWaveのおすすめ情報

    特集

    このQ&Aの関連キーワード

    同じカテゴリの人気Q&Aランキング

    -PR-

    ピックアップ

    -PR-
    -PR-