n進数から10進数への変換・10進数からn進数への変換
n進数から10進数への変換・10進数からn進数への変換について、具体例付きで解説していきます。コンピュータや基本情報・応用情報午前問題の基礎となる部分です。
基数
コンピュータには、主に2進数が使われているということや、2進数や16進数の数え方については、基礎のため理解しているという前提で話を進める。
ここでは、n進数を10進数へ、n進数を10進数へ変換する方法を説明していく。
n進数から10進数へ
2進数1010を10進数へ
ここでn進数から10進数に変換する際の公式的なものを紹介。
1000の位 | 100の位 | 10の位 | 1の位 | . | 小数第一位 | 小数第二位 | 少数第三位 | |
---|---|---|---|---|---|---|---|---|
n進数 | 1 | 0 | 1 | 0 | . | 0 | 0 | 0 |
n進数への乗数 | n³ | n² | n¹ | n⁰ | n∖1 | n²∖1 | n³∖1 |
n進数を10進数へ変換する際は、上の表のように桁に合わせて数字をかけていき、それぞれの積を全て足し合わせる。そうするとその数は10進数になっている。
したがってこの問題では
0(1の位)*2⁰+1(10の位)*2¹+0(100の位)*2²+1(1000の位)*2³
=0+2+0+8=10
となる。よって、2進数1010を10進数へ変換すると10になる。
表ではn進数への乗数をn⁰などとしているように、8進数の場合はnに8が入る。その後は同じように積を求め、全て足し合わせれば10進数の値が出る。
また小数点も出てくる値では、表のように分数をかける必要がある。その後積を求めて足し合わせていくことは同じだが、小数部と整数部は分けて計算しなければならない。例えば、整数部で14、小数部で2が出た場合、10進数に直すときは
14.2
となる。
10進数からn進数へ
10進数をn進数へ変換する方法は、二通りあるが、ここでは一通りのみ紹介する。
10進数11.25を2進数へ
10進数からn進数への変換も、整数部と小数部を分けて考える。
10進数からn進数へ変換する際の公式的なものはこれ。(整数部)
ここで、aは最初の10進数、a,b,cは商を表し、d,e,fはあまりを表す。
x ÷ n=a・・・d
=a ÷ n=b・・・e
=b ÷ n=c・・・f
このとき、10進数xを2進数に変換するとfedとなる。(かけている訳ではなく、隣り合わせで書いているだけ。 101 などのような感じ。)
つまり、最初の10進数を、変換する進数で商が0になるまで割り続け、あまりを最後から順に書いたものがn進数、ということである。
続いて、小数部のn進数の求め方。
ここで、xは最初の10進数、a,b,cは積を表す。
x×n=a
a×n=b
b×n=c
c×n=・・・(積が1になったら終了)
このとき、10進数xを2進数に変換するとabcとなる。
こちらは、2進数にする際は最初から順に書いていく。また、積が1を超えた場合、nにかける際は整数部を0として計算し、2進数で表す際はそのまま1をかく。
どういうことか詳しく説明。
例えば、10進数0.375を2進数に直す際、
0.375×2=0.75
0.75×2=1.5
式の途中で、積が1を超える。
このとき次は、
1.5×2= ではなく
0.5×2= で計算する。
したがって、まとめると次のようになる。
0.375×2=0.75
0.75×2=1.5
0.5×2=1
このとき、2進数に直す際はそのまま積の値を取り出すので、10進数0.375を2進数に直すと、0.011になる。ということである。
それでは続いて、10進数11.25を2進数へ変換していく。
まず整数部から求める。
11÷2=5・・・1
5÷2=2・・・1
2÷2=1・・・0
1÷2=0・・・1
より、1011である。
小数部は、
0.25×2=0.5
0.5×2=1
したがって、0.01である。
小数部と整数部を足し合わせれば良いので、10進数11.25を2進数に変換すると
1011.01
となる。
n進数の変換についてはここまで。2進数から8進数に、16進数から2進数にする方法などもあるが、必ず理解しておかなければならない訳ではない。n進数から10進数、10進数からn進数へ変換する方法さえ知っていれば、計算量が増えるだけで解くことは出来る。
Twitterフォローよろしくお願いします