- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:10進数をBCDに変換する方法)
10進数をBCDに変換する方法
このQ&Aのポイント
- 10進数をBCDに変換する方法についての疑問です。
- 3846をBCDに変換する場合の処理方法について疑問があります。
- 1111を10進化すると15となり桁上りが生じる場合の処理方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
BCDに変換する際、数値全体を2進数に変換する必要はありません。 各桁を構成している数値を2進数に変換して、合体させればよいです。 10進数の3846をBCDに変換するのであれば、 3 → 0011 8 → 1000 4 → 0100 6 → 0110 より、 0011 1000 0100 0110 です。
その他の回答 (2)
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
回答No.3
追記。 桁数が最初から判っているなら(変換する桁数が固定なのであれば) 3846を1000で割った商を10で割った余り⇒3⇒0011 3846を100で割った商を10で割った余り⇒8⇒1000 3846を10で割った商を10で割った余り⇒4⇒0100 3846を1で割った商を10で割った余り⇒6⇒0110 と言うように、先頭から求めていく事も出来ます。
質問者
お礼
わかりやすい回答ありがとうございます。 理解できました!
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
回答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ビットになる。
お礼
2進数に変換せずにそのままでOKだったんですね。 理解しました。ありがとうございます。