二進法を十進法に変換する方法

共同執筆者 wikiHow編集チーム

二進法は電子計算機の内的言語です。本格的なコンピュータープログラマーなら、二進法から十進法への変換方法を知っていることでしょう。このwikiHowでは二進法を十進法に変換する方法をお教えします。

2の方法1:
位取り記数法を使う

  1. 1
    二進法の数を書き出し、右から左へ2の累乗を並べる たとえば、二進法で表された数100110112を十進法へ変換する場合を考えましょう。まずはじめに、二進法の数字を紙に書きましょう。次に右から左へ2の累乗を並べて書きましょう。右端は20で、その値は1です。左に1つずれるごとに指数を1ずつ増やします。並べた2の累乗の数は二進法の数の桁数と合わせます。例の10011011は8桁なので、2の累乗を8つ並べて次のようになります。128, 64, 32, 16, 8, 4, 2, 1
  2. 2
    対応する2の累乗の下に二進法の数の桁を書く 128、64、32、16、8、4、2、1の下に10011011を書きましょう。二進法の桁のそれぞれが2の累乗の数と対応します。右端の二進法の1は右端の2の累乗の1と対応し、残りの桁も順番に対応します。好みにより、2の累乗の上に二進法の桁を書くこともできます。重要なのは桁数と累乗の個数が一致しているということです。
  3. 3
    二進法の桁と対応する2の累乗とを線で結ぶ 右から順に線を引きましょう。連続する二進法の桁とその上の対応する2の累乗をそれぞれつなげます。まずは二進法の1桁目とその上の対応する20(=1)を線で結びましょう。次に、二進法の2桁目と対応する21(=2)を線で結びましょう。同様に二進法の桁と対応する2の累乗をつなげていきましょう。このようにして二進法と2の累乗の関係を可視化します。
  4. 4
    二進法の桁ごとに2の累乗の最終値を書く 二進法の桁ごとに十進法に変換しましょう。二進法の数の下に直線を引きます。二進法の桁が1の場合、対応する2の累乗の値を直線の下に書きましょう。二進法の桁が0の場合、直線の下に0を書きます。
    • 「1」は 「1」と対応するので、直線の下の最終値は「1」になります。「2」は「1」と対応するので、最終値は「2」になります。「4」は「0」と対応するので、最終値は「0」になります。同様に、「8」は「1」と対応するので「8」、「16」は「1」と対応するので「16」、「32」は「0」と対応するので「0」、「64」は「0」と対応するので「0」、「128」は「1」と対応するので「128」が最終値となります。
  5. 5
    最終値の和を求める 次に、直線の下に書いた数字を合計しましょう。計算式は次のようになります。128 + 0 + 0 + 16 + 8 + 0 + 2 + 1 = 155。これが二進法の数10011011を十進法に変換した数です。
  6. 6
    基数を付けて答えを書く 次に、15510と書いて完成です。基数の10は十進法の数であることを表し、10倍ごとに桁が上がっていきます。二進法から十進法への変換に慣れると、2の累乗を暗記できるので、変換の処理が速くなります。
  7. 7
    同様の方法で二進法で表された小数を十進法に変換する 位取り記数法を使って、たとえば、1.12を十進法に変換することもできます。小数点の左の数が通常の20(=1)の位であり、右の数は2-1(=1/2)の位であることに注意しましょう。
    • 小数点の左にある「1」は20すなわち1と等しい値です。小数点の右にある1は2-1すなわち0.5と等しい値です。1と0.5を合計して1.5になります。これが1.12を十進法に変換した数です。
    広告

2の方法2:
2倍する方法を使う

  1. 1
    二進法の数を書き出す この方法では累乗を使いません。この方法自体は小計を求め続けるだけなので、大きい桁の変換も暗算で簡単にできます。まずはじめに変換する二進法の数を書き出します。それでは、10110012の変換をする場合を考えましょう。まずは数字を書き出しましょう。
  2. 2
    左からはじめて、前に出した合計を2倍して次の桁を加える 今回与えられた10110012において、まず左の1桁目は1です。まだ計算を始めていないので前に出した合計の値は0です。前の合計の0を2倍して、左端の1を加えましょう。0 x 2 + 1 = 1、よって、現在の合計が1であることが分かります。
  3. 3
    現在の合計を2倍し、左端の桁を加える 今現在の合計は1、そして、左端の桁は0です。それゆえ、1を2倍して0を加えます。1 x 2 + 0 = 2。新しい合計は2です。
  4. 4
    上の方法を繰り返す 同様に続けていきましょう。次に、現在の合計を2倍し、左端の桁の1を加えます。2 x 2 + 1 = 5。新しい合計は5です。
  5. 5
    さらに上の方法を繰り返す 次に、現在の合計である5を2倍し、左端の桁の1を加えましょう。5 x 2 + 1 = 11。新しい合計は11です。
  6. 6
    さらに上の方法を繰り返す 現在の合計である11を2倍し、左端の桁の0を加えましょう。2 x 11 + 0 = 22。
  7. 7
    さらに上の方法を繰り返す 今現在の合計である22を2倍し、左端の桁の0を加えましょう。22 x 2 + 0 = 44。
  8. 8
    二進法の桁がなくなるまで、現在の合計を2倍し左端の桁を加えていく 残り1桁の計算になりました。現在の合計である44を2倍し、最後の桁の1を加えましょう。2 x 44 + 1 = 89。これで変換が完了しました。100110112を十進法表記の89に変換しました。
  9. 9
    基数をつけて答えを書く 10倍ごとに桁が上がっていく十進法の表記であることを示すため、最終的な答えは8910と書きます。
  10. 10
    この方法を使って、あらゆる数を十進法に変換する 今回は基数が2であるため2倍する方法を用いました。別の基数が与えられた場合、今回の掛ける数2を与えられた基数に置き換えます。たとえば、基数が37の場合、「x 2」を「x 37」に置き換えます。最終的な結果は基数が10の数、すなわち、十進法表記になります。
    広告

ポイント

  • 練習問題です。 次の二進法の数、110100012、110012、111100012を十進法に変換してみましょう。それぞれ十進法の答えは 20910、2510、24110です。
  • Microsoft Windowsにインストールされている計算機によって変換は可能ですが、プログラマーならば変換処理の仕組みを理解しておきましょう。計算機の変換オプションはメニューの「表示」を開いて「関数電卓」(または「プログラマ」)を選ぶことで表示されます。Linuxで、計算機を使うこともできます。
  • 注意:この方法は計算の目的にのみ使用できます。ASCIIコード表には対応しません。
広告

注意事項

  • この方法は符号なし2進数を使用します。符号あり2進数、浮動小数点数、固定小数点数は使用しません。
広告

このwikiHow記事について

共著:
wikiHowスタッフ編集者
この記事は、経験豊富なwikiHowの編集者と調査員から成るチームによって執筆されています。調査員チームは内容の正確性と網羅性を確認しています。

この記事は役に立ちましたか?

はい
いいえ
広告