• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:10進数をBCDに変換する方法)

10進数をBCDに変換する方法

このQ&Aのポイント
  • 10進数をBCDに変換する方法についての疑問です。
  • 3846をBCDに変換する場合の処理方法について疑問があります。
  • 1111を10進化すると15となり桁上りが生じる場合の処理方法について教えてください。

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

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

BCDに変換する際、数値全体を2進数に変換する必要はありません。 各桁を構成している数値を2進数に変換して、合体させればよいです。 10進数の3846をBCDに変換するのであれば、 3 → 0011 8 → 1000 4 → 0100 6 → 0110 より、 0011 1000 0100 0110 です。

stamp_dr
質問者

お礼

2進数に変換せずにそのままでOKだったんですね。 理解しました。ありがとうございます。

その他の回答 (2)

回答No.3

追記。 桁数が最初から判っているなら(変換する桁数が固定なのであれば) 3846を1000で割った商を10で割った余り⇒3⇒0011 3846を100で割った商を10で割った余り⇒8⇒1000 3846を10で割った商を10で割った余り⇒4⇒0100 3846を1で割った商を10で割った余り⇒6⇒0110 と言うように、先頭から求めていく事も出来ます。

stamp_dr
質問者

お礼

わかりやすい回答ありがとうございます。 理解できました!

回答No.2

>たとえば、10進数の3846をBCDに変換する場合答えはどのようになりますか? 3846を10で割った余り「6」を求め、2進数にする。 6⇒0110 3846を10で割って「384」にする。小数点以下切り捨て。 384を10で割った余り「4」を求め、2進数にする。 4⇒0100 384を10で割って「38」にする。小数点以下切り捨て。 38を10で割った余り「8」を求め、2進数にする。 8⇒1000 38を10で割って「3」にする。小数点以下切り捨て。 3を10で割った余り「3」を求め、2進数にする。 3⇒0011 4桁分変換したので、終了。 最後から逆に順番に並べると 0011 1000 0100 0110 と言う16ビットになる。