203 views
1. やりたいこと
10進数で表記された値を 16進数、2進数に変換したい。
電卓が無い場合の手計算の手順をメモしておく。
特に小数の表記については普段使わないので、試験で出題されたら右往左往して時間がかかるかも・・・
2. やってみる
求めるべきものは、各桁の値だ。
10進数だろうが、16進数だろうが、2進数だろうが、8進数だろうが、はたまた357進数だろうが、各桁の値を求める手順は同じだ。
そもそもn進数とは?
一桁の値を 0 ~ n-1 で表すことができる数え方のこと。
よって、
10進数ならば 0,1,2,3,4,5,6,7,8,9 の 10文字で数を表し、x10 で桁が一つ大きくなり、÷10 で桁が一つ小さくなる。
同様に、
16進数ならば 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F の 16文字で数を表し、x16 で桁が一つ大きくなり、÷16 で桁が一つ小さくなる。
8進数ならば 0,1,2,3,4,5,6,7 の 8文字で数を表し、x8 で桁が一つ大きくなり、÷8 で桁が一つ小さくなる。
2進数ならば 0,1 の 2文字で数を表し、x2 で桁が一つ大きくなり、÷2 で桁が一つ小さくなる。
(1) 整数部の変換手順
※10進数の例を見るとロジックを理解しやすい。
■手順
10進数の場合を例に手順を記す。
一番小さい桁(=1の位)から順に、その桁の値を決めていけばよい。
1) 7625 ÷ 10 = 762 余り 5
2) 762 ÷ 10 = 76 余り 2
3) 76 ÷ 10 = 7 余り 6
4) 各桁の値を大きい順に並べる → 7625
つまり、(1000 x 7) + (100 x 6) + (10 x 2) + (1 x 5) = 7625
16進数、2進数でも手順は同じだ。
16進数ならば、1)~4)の ÷ 10 が ÷ 16になり、余りの値は 0~15の範囲になる。
2進数ならば、1)~4)の ÷ 10 が ÷ 2になり、余りの値は 0, 1のどちらかになる。
(2) 小数部の変換手順
※10進数の例を見るとロジックを理解しやすい。
■手順
10進数の場合を例に手順を記す。
一番大きい桁(=0.1の位)から順に、その桁の値を決めていけばよい。
1) 0.7625 x 10 = 7.625 → 0.1の位の値は 7
2) 0.625 x 10 = 6.25 → 0.01の位の値は 6
3) 0.25 x 10 = 2.5 → 0.001の位の値は 2
4) 0.5 x 10 ~ 5 → 0.0001の位の値は 5
5) 各桁の値を大きい順に並べる → 0.7625
つまり、(0.1 x 7) + (0.01 x 6) + (0.001 x 2) + (0.0001 x 5) = 0.7625
こちらも整数部と同じく、16進数、2進数でも手順は同じ。
3. 実行例
(1) 10進数 372.625を 2進数で表すと?
整数部は 372, 小数部は 0.625 だ。
これらを別々に 2進数表記に変換する。
■整数部を求める
1の位から順に(←)桁の値を求める。
1) 372 ÷ 2 = 186 余り 0 → 20の桁の値は 0 → xxxxxxxxxxx0
2) 186 ÷ 2 = 93 余り 0 → 21の桁の値は 0 → xxxxxxxxxx00
3) 93 ÷ 2 = 46 余り 1 → 22の桁の値は 1 → xxxxxxxxx100
4) 46 ÷ 2 = 23 余り 0 → 23の桁の値は 0 → xxxxxxxx0100
5) 23 ÷ 2 = 11 余り 1 → 24の桁の値は 1 → xxxxxxx10100
6) 11 ÷ 2 = 5 余り 1 → 25の桁の値は 1 → xxxxxx110100
7) 5 ÷ 2 = 2 余り 1 → 26の桁の値は 1 → xxxxx1110100
8) 2 ÷ 2 = 1 余り 0 → 27の桁の値は 0 → xxxx01110100
9) 1 ÷ 2 = 0 余り 1 → 28の桁の値は 1 → xxx101110100
整数部が0(=値なし)になったので計算終了。
よって、整数部の2進数表記は 101110100B となる。
■小数部を求める
0.1の位から順に(→)桁の値を求める。
1) 0.625 x 2 = 1.25 → 2-1の桁の値は 1 → 0.1xxxxx
2) 0.25 x 2 = 0.5 → 2-2の桁の値は 0 → 0.10xxxx
3) 0.5 x 2 = 1.0 → 2-3の桁の値は 1 → 0.101xxx
小数部が0(=値なし)になったのでここで計算終了。
よって、小数部の2進数表記は 0.101B となる。
■整数部と小数部を結合
10進数 372.625 は、2進数で表すと 101110100.101 となる。
※もし頭が混乱したら、上述の 10進数の計算例を再度理解し直すとよい。