1

十進数をn進数に変換する方法とその証明

1900
0

概要

本稿では,十進法で表された数をn進法の表記に変換するためのよく知られている手順を紹介し,その方法が正しいことを証明する.

詳細

変換手順

はじめに変換手順を紹介する.よく知られている方法は次のようなものである:

  1. 変換したい数を基数nで割る,
  2. 得られた商を基数nで割る,
  3. 2を商が0になるまで繰り返す,
  4. 1,2,3の過程で導出された余りを,商が0となったときのものから順に並べる.

これだけではややわかりづらいため,具体例を見てみよう.

十進数から二進数への変換

十進法で表された10を二進法で表せ.

解答

10を基数2で割っていくと
102=5...052=2...122=1...012=0...1
となる.ただし,q...rは商がq,余りがrであることを表す.従って,十進法で表された10を二進法で表すと1010である.

なぜこの手順で良いのか

なぜ上記に示した手順で変換できるのか,問題1を基に考えてみよう.十進法で表された10を二進法で表したときの,2kの位の数字をak{0,1}とすると,
10=23a3+22a2+21a1+20a0
である(十進法で表された10の二進数表記が4桁であることは,23<10<24が成り立つことからわかる).これより
10=2(22a3+2a2+a1)+a0=25+0
となることがわかる.すなわちa0=0である.同様に,
5=22a3+2a2+a1=2(2a3+a2)+a1=22+1,2=2a3+a2=21+0,1=a3=20+1
となるからa1=1,a2=0,a3=1であることがわかる.このようにきちんと書いてみて「あれ,意外と単純じゃね?」と思えればしめたものだ.後はこれを一般的に書き直すだけである.

証明

では,手順が正しいことを証明してみよう.念のため,変換法を定理の形で記しておく.

十進数からn進数への変換

正の整数pn進数表記はN桁であるとする.また,pnで割ったときの商をb0,余りをa0とし,k=0,1,,N2に対して,bknで割ったときの商をbk+1,余りをak+1とする(特にbN1=0である).このとき,pn進法で表したときの,nkの位の数字はakである.

仮定より,
p=nb0+a0,bk=nbk+1+ak+1k=0,1,,N2
であるから
p=n(nb1+a1)+a0=n2b1+na1+a0=n2(nb2+a2)+na1+a0=n3b2+n2a2+na1+a0==nN1(nbN1+aN1)+nN2aN2++n2a2+na1+a0=nN1aN1+nN2aN2++n2a2+na1+a0
となる.従って,pn進法で表したときの,nkの位の数字はakである.

投稿日:2021427
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

電気魚
電気魚
25
31486

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. 概要
  2. 詳細
  3. 変換手順
  4. なぜこの手順で良いのか
  5. 証明