pwd-it:IT資格の勉強ブログ

IT系資格の勉強に役立つ情報などを共有していきたいと思います

1.1.1.1.進数・基数

1.1.1.1.進数・基数

普段、馴染みのある数字(2017年や、980円など)は10進数と呼ばれます。 コンピュータ内部では、情報は全て0と1の組み合わせのみで表現されており、この表現の仕方を2進数と呼びます。 情報処理技術者試験で出題される進数には、2進数、8進数、10進数、16進数があります。

今回は、各進数の変換方法(基数変換)や、計算のコツを説明します。

重要用語

  • 基数変換の方法
  • 2進数、8進数、10進数、16進数

スポンサードリンク

目次

基数とは

基数(きすう):【英】radix, base
基数とは、数値を表現する際に、位取りの基準となる数のことである。 普段の生活に用いられる10進数は、10倍ごとに桁が上がっていくので、基数は10となる。2進数ならば基数は2であり、2倍ごとに桁が上がってゆく。16進数でも同様に、16倍ごとに桁を増やし、「1の位、16の位、256の位、~」と増えてゆく。
出典:weblio辞書(http://www.weblio.jp/

ページ頭の例で挙げた2進数、8進数、10進数、16進数の2,8,10,16が基数にあたります。
基数が10の例で考えると、桁数は1(1桁)->10(2桁)->100(3桁)->1000(4桁)と、値が10(=基数)倍となるごとに桁が1上がります。

2進数

2進数はコンピュータ内部で使われている進数で、0と1のみで表現されます。
電気のON,OFF、磁極のN,S、電圧の高,低などの2値でデータを表現することができます。

10進数 2進数
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
11 1011
2017 11111100001

16進数

16進数もコンピュータの世界ではよく出現します。先に述べた通り、 コンピュータ内部ではデータを2進数で管理しますが、10進数との対比を見てもわかるように、 非常に桁数が大きくなってしまいます。これをうまく表現するために作られたのが16進数です。
16進数では、0〜9の数字とA,B,C,D,E,Fのアルファベット合わせて16文字を使って表現します。

10進数 2進数 16進数
0 0 0
1 1 1
2 10 2
3 11 3
4 100 4
5 101 5
6 110 6
7 111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
16 10000 10
17 10001 11
2017 11111100001 7E1

この例のように、10進数で2017は、2進数では11111100001(11桁)、16進数では7E1(3桁)で表現できます。

使用例としては、インターネットなどのネットワーク上のIPアドレス(IPv6アドレス)を表すために使われています。

IPv6アドレスの例(16進数4桁ごとに区切って表記)
2001:0db8:1234:5678:90ab:cdef:0000:0000

8進数

10進数 2進数 8進数 16進数
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 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
17 10001 21 11
2017 11111100001 3741 7E1

8進数も16進数と同じように2進数を小さい桁数で表現するために使われますが、使用頻度は低いです。 0〜7の文字を使って表現します。

基数変換の方法

10進整数→2進数 [方法1]

2進数に変換するには、2のべき乗(2の何乗か)をどのように足し合わせると、その数字を実現できるかで考えます。

2のべき乗

乗数 数値(10進数)
0 1
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
10 1024

10進整数→2進数 [方法2]

以下のように基数である2で数値を割っていき、その余りを記録します。
商を順次割っていき、0になるまで繰り返します。
余りを、図のように、最後に計算した余りが最上位の桁となるように並べれば2進数が得られます。

f:id:pwd-tennis:20170308010614j:plain f:id:pwd-tennis:20170308010618j:plain

10進小数→2進数 [方法1]

整数の所で、2進数のn桁目は2のn-1乗の位でした。これと同じように、小数で2進数の小数点以下n桁目は2の-n乗の位です。
これを利用して、2のマイナスべき乗をどのように足し合わせると、その数字を実現できるかで考えます。
※全ての10進小数を2進数で表すことはできません。例えば10進数で0.1は、2進数では表せず、限りなく桁が続く循環小数になります。

2のべき乗(マイナス)

乗数 数値(10進数)
0 1
-1 0.5
-2 0.25
-3 0.125
-4 0.0625
-5 0.03125
-6 0.015625
-7 0.0078125
-8 0.00390625
-9 0.001953125
-10 0.0009765625

f:id:pwd-tennis:20170308222047j:plain

10進小数→2進数 [方法2]

整数の方法2と同じように、機械的に算出する方法もあります。整数の場合と逆で、小数部分に2を掛けていき、その積の整数部分(0か1か)を記録していきます。
そして、小数部分が0になるまで繰り返します。
結果の整数部分を図のように、最初に計算した値が小数点第1位となるように並べれば2進数が得られます。

f:id:pwd-tennis:20170308222052j:plain f:id:pwd-tennis:20170308223819j:plain

2進数→10進数

これまでに説明した下の2つの特徴を利用します。 2進数のn桁目は2のn-1乗の位。 小数で2進数の小数点以下n桁目は2の-n乗の位。

f:id:pwd-tennis:20170309000709j:plain

2進数←→16進数

2進数と16進数の相互変換は、

16進数の1桁 = 2進数の4桁 であることを利用して変換します。

2進数←→16進数 対応表

2進数 16進数
0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

f:id:pwd-tennis:20170309000504j:plain f:id:pwd-tennis:20170309000800j:plain

16進数←→10進数

これまでに説明した内容を組み合わせる方法が間違いにくくてオススメです。

16進数→10進数 = 16進数 → 2進数 → 10進数

10進数→16進数 = 10進数 → 2進数 → 16進数

例題:基本情報技術者(FE) H27春 午前 問1

基本情報技術者(FE) H27春 問1

問1
10進数の演算式7÷32の結果を2進数で表したものはどれか。
ア. 0.001011
イ. 0.001101
ウ. 0.00111
エ. 0.0111

上で説明した方法1、方法2のそれぞれでの解法を説明します。

f:id:pwd-tennis:20170309000822j:plainf:id:pwd-tennis:20170309000827j:plain

スポンサードリンク