とりあえずの備忘録

主にパソコンやインターネットに関するメモ

情報処理 進数の変換

コンピュータの世界は「0、1」の2進数で成り立っている。その2進数を慣れ親しんだ10進数に変換したり、2進数を人間が読み取りやすい8進数や16進数に変換したりしたときのメモです。

2進数と10進数の変換

2進数「1011.101」を10進数に変換する

10進数に変換するには、各桁ごとに重み付けをすればいい。

1×(2の3乗) + 0×(2の2乗) + 1×(2の1乗) + 1×(2の0乗) . 1×(2の-1乗) + 0×(2の-2乗) + 1×(2の-3乗)

1×8 + 0×4 + 1×2 + 1×1 . 1×1/2 + 0×1/4 + 1×1/8

8 + 0 + 2 + 1 + 0.5 + 0 + 0.125 = 11.625

よって、2進数「1011.101」を10進数で表現すると「11.625」になる。

10進数「11.625」を2進数に変換する

まず、整数部(11)と少数部(0.625)に分ける。

整数部は、商がゼロになるまで2で割り続ける。そして余りを下から並べる。

11 ÷ 2 = 5 余り 1
5 ÷ 2 = 2 余り 1
2 ÷ 2 = 1 余り 0
1 ÷ 2 = 0 余り 1

下から並べると、1011。

小数部は、積の小数がゼロになるまで2で掛け続ける(積の小数だけを引き継ぐ)。そして積の整数を上から並べる。

0.625 × 2 = 1.25
0.25 × 2 = 0.5
0.5 × 2 = 1.0

上から並べると、101。

よって、10進数「11.625」を2進数で表現すると「1011.101」になる。

ちなみに少数部の計算は、永久にループする場合もある。

2進数と8進数と16進数の変換

力技で対応表を書いて変換する

2進数と8進数と16進数の変換は、慣れないうちは対応表を書いてしまったほうが早い。そして何度も書くことで頭に叩き込む。

10進数 2進数 8進数 16進数
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10

2進数「01110101」を8進数と16進数に変換する

16進数は4桁に、8進数は3桁に、後ろの方から区切って対応させる。

0111(=7)|0101(=5)|
2進数「01110101」を16進数で表現すると、75

01(=1)|110(=6)|101(=5)|
2進数「01110101」を8進数で表現すると、165

平成30年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

平成30年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)