- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PICでのBCD変換について教えてください)
PICでのBCD変換について教えてください
このQ&Aのポイント
- PICと液晶表示器を使って車の電圧計を作りたい
- BCD変換の概念や流れがよくわからない
- 割って商に0x030を足す理由が分からない
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#81590
回答No.1
『もしかして、アスキーコード表というものに合わせるためでしょうか?』 そうです。この部分はBCD変換ではなくASCII変換ですね。 BCD変換くらいは人のプログラムを見るより算数で考えたほうが理解は簡単です。 ある8bit数 x があります。0~255ですね。求める10進数各桁は、100の位をA、10の位をBとします。 A、Bの初期値を0にします。 xが100以上なら、xから100を引いてAに1を加え、この行を繰り返します。xが100未満なら次の行へ。 これで100の位Aが分かり、xには元の数を100で割った余りが入っています。 xが10以上なら、xから10を引いてBに1を加え、この行を繰り返します。xが10未満なら次の行へ。 これで10の位Bが分かり、xには元の数を10で割った余りが入っています。つまり1の位はxです。 以上で2進→10進変換おわり。これをBCDコードにするのも簡単ですが液晶表示のためにASCIIコードが欲しいならBCDコードは意味が無いでしょう。 ASCIIコードの"0"は0x30、"9"は0x39ですから、A、B、xに0x30を加えると、100の位、10の位、1の位のASCIIコードになります。
お礼
ありがとうございました。アドバイスを参考になんとなく書いてみました。