総ありがとう数 累計4,331万(2014年12月22日現在)

毎月4,000万人が利用!Q&Aでみんなで助け合い!

-PR-
con014057

現在,マイコンを使用してセンサの値をAD変換して取り込むプログラムを作成しています.
AD変換は8bitの分解能で0~255の値が取得できます.
その値を0~100に置き換えたい,
例えば
  センサの値が0なら0
          128なら50
  255なら100

上記のようなことを実現するためにはどのようなプログラムを書けばよいでしょうか?
宜しくお願い致します.
  • 回答数4
  • 気になる数0

Aみんなの回答(全4件)

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

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

その他の回答 (全3件)

  • 2013-01-27 18:42:44
  • 回答No.2
> この時,小数点以下の数値はどうなるのでしょうか?
あなたが小数点以下の数値を必要としているなら残せば良いし、
必要ないなら切り捨てれば良いです。
お礼コメント
ご回答ありがとうございます.
intに代入すれば勝手に切り捨てられるんですね.
投稿日時 - 2013-02-01 09:06:42
  • 同意数0(0-0)
  • ありがとう数0
  • 2013-01-27 19:26:40
  • 回答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 データを加算し小数点以下を丸めた方がいいかも知れません。
お礼コメント
ご回答ありがとうございます.
BCD加算で近似値を求める方法もあるのですね.
勉強になりました.
投稿日時 - 2013-02-01 09:09:44
  • 同意数0(0-0)
  • ありがとう数0
  • 2013-01-27 21:10:09
  • 回答No.4
>この時,小数点以下の数値はどうなるのでしょうか?

#2の方のいわれてる通り、必要であれば残せばいいです。
どうやって残せばいいのかは固定小数点や浮動小数点などを調べてみてください。
  • 同意数0(0-0)
  • ありがとう数0
  • 回答数4
  • 気になる数0
  • ありがとう数0
  • ありがとう
  • なるほど、役に立ったなど
    感じた思いを「ありがとう」で
    伝えてください

関連するQ&A

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

別のキーワードで再検索する

あなたの悩みをみんなに解決してもらいましょう

  • 質問する
  • 知りたいこと、悩んでいることを
    投稿してみましょう
-PR-
-PR-
-PR-

特集


年賀状のマナーや作り方を学べるQ&A特集!

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ