質問: 10進数をbcdに変換する方法 10進数から2進化10進数(bcd)に変換するところで疑問があります。 たとえば、10進数の3846をbcdに変換する場合答えはどのようになりますか? 私なりに考えたところまでを示しますが、答えがわかりません。 どこに考え方の間違いがあるのでしょうか? まず、3846を2進数に変換しました。 3846 → 0000111100000110 (2進数)となります。 ここからbcdに変換する場合、4ビットずつを1つと考えて数字を表現するので、上記の2進数の頭から4つずつ分けて考えると 1つ目 0000 2つ目 1111 3つ目 0000 4つ目 0110 の4つにわけました。 続いて、それぞれを10進化しました。 1つ目 0000 → 0 2つ目 1111 → 15 3つ目 0000 → 0 4つ目 0110 → 6 ここで疑問が出てきます。 2つ目のところで、1111を10進化すると15となってしまい桁上りが生じます。 この場合どのように処理するのが良いのでしょうか? どなたかご教授ください。
回答: >たとえば、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ビットになる。