10進数の 19 を2進数に変換するには、 次のようにして 10011 を得ます。
19 = 9 × 2 + 1= ( 4 × 2 + 1 ) × 2 + 1
= ( 4 × 2 ) × 2 + 1 × 2 + 1
= ( ( 2 × 2 + 0 ) × 2 ) × 2 + 1 × 2 + 1
= 2 × 23 + 0 × 22 + 1 × 2 + 1
= ( 1 × 2 + 0 ) × 23 + 0 × 22 + 1 × 2 + 1
= 1 × 24 + 0 × 23 + 0 × 22 + 1 × 2 + 1
この原理を利用して、 10進数を2進数に変換するプログラムを作ることができます。ただし、 数字を書き出す順は、 一般的に右から左ではなくて、 左から右ですので、 下のようなプログラムではすると、 数字を逆さに並べた2進数が出力され、 困ったことになります。
そこで、 これを簡単に直す方法が3つありますので、 次に紹介します。
ついでに、 テクニック的なことになりますが、 11111111 までの2進数を8桁で表示するプログラムも紹介します。
最後に、 以上とは異なるアルゴリズムで2進数変換を行うプログラムを紹介します。 このアルゴリズムは、 与えられた10進数を Q とすると、 2n ≦ Q < 2n+1 となる n を求め、 次に、 2m ≦ Q−2n < 2m+1 となる m を求め、 ・ ・ ・ ・ というふうになっています。
プログラムの内容 :
十進