LSBについて詳しい方ご教授ください。 不明点を簡潔に言いますと、
LSBについて詳しい方ご教授ください。 不明点を簡潔に言いますと、 LSBが違う変数同士の四則演算を行うとどうなるのか、ということがよくわかってないです。 【理解できていること】 基本的なLSBとはどういうものかということは理解しているつもりです。 (例) 電圧範囲:0~12(V),分解能:10bit ⇒ LSB:12/2^10 0~12Vを0~1024で表現する。 【理解できていないこと】 箇条書きになってしまいますが不明点を例を用いていくつか記載します。 ①右辺と左辺でLSBの粒度は同じにしなくてはならないのか。 [加算]C=A+B 例1: ・演算結果のLSBが規定されているとき(AのLSB:1/128、BのLSB:1/4、CのLSB:1/128) (疑問1)この時はBを拡張して1/128にする?拡張する場合演算式がよくわからない。 例2: ・演算結果のLSBが規定されていないとき(AのLSB:1/128、BのLSB:1/4、CのLSB:??) (疑問2)この時はBを拡張して1/128にする。だからその結果Cも1/128の粒度になるという流れ? 自分のなかでは、1/128と1/4と比べた時、より細かく表現している1/128に合わせないと誤差(桁落ち?)が発生してしまうからより細かいほうに合わせる必要があるという理解をしています。 [乗算]C=A*B A:signed 2byte ,LSB:20/8192 B:signed 2byte ,LSB:20/8192 C:signed 4byte ,LSB:????? この時のCのLSBは(20/8192)^2となるんでしょうか? 正直なところ、加算、減算と違い乗算、除算のところからイメージができなくなりました。 もう少し聞きたいことはありますが、一旦上記のところご教授ください。
ベストアンサー
(1)そろえる必要があります 貴方の使うシステムによって好きにすれば良いですが、C言語ではシフト演算が用意されています 工業高校で教えるJISベーシックにはシフト演算は無いので割り算してください https://kikakurui.com/x3/X3003-1993-01.html (2) C:signed 4byteにするかどうかは任意 ,LSB:(20/8192)^2
質問者からのお礼コメント
回答ありがとうございます。 基本的にLSBが1のソフトしか見てこなかったので、電流のソフト見たらなかなか苦戦してました( ;∀;)
お礼日時:2/26 18:22