2進数への変換のアルゴリズム
十進BASIC_算数 へ戻る
大学生のための数学 へ戻る
2013.10.09


10進数の 19 を2進数に変換するには、 次のようにして 10011 を得ます。

    

    19 = 9 × 2 + 
       = ( 4 × 2 + ) × 2 + 
       = ( 4 × 2 ) × 2 +  × 2 + 
       = ( ( 2 × 2 + ) × 2 ) × 2 +  × 2 + 
       = 2 × 23 × 22 +  × 2 + 
       = ( × 2 + ) × 23 × 22 +  × 2 + 
       =  × 24 +  × 23 +  × 22 +  × 2 + 


  この原理を利用して、 10進数を2進数に変換するプログラムを作ることができます。ただし、 数字を書き出す順は、 一般的に右から左ではなくて、 左から右ですので、 下のようなプログラムではすると、 数字を逆さに並べた2進数が出力され、 困ったことになります。

  そこで、 これを簡単に直す方法が3つありますので、 次に紹介します。

  ついでに、 テクニック的なことになりますが、 11111111 までの2進数を8桁で表示するプログラムも紹介します。


  最後に、 以上とは異なるアルゴリズムで2進数変換を行うプログラムを紹介します。 このアルゴリズムは、 与えられた10進数を Q とすると、 2n ≦ Q < 2n+1 となる n を求め、 次に、 2m ≦ Q−2n < 2m+1 となる m を求め、 ・ ・ ・ ・ というふうになっています。

  プログラムの内容 :