目次
- はじめに
- 基数変換の基礎知識
- 2進数から各基数への変換
- 8進数から各基数への変換
- 10進数から各基数への変換
- 16進数から各基数への変換
- 基数変換における少数の取り扱い
- よくある基数変換問題とその解き方
- まとめ
1. はじめに
基数変換の問題は、基本情報技術者試験において頻繁に出題されています。本記事では、基数変換の各分野を詳細に解説し、例題と共にその解法を深掘りしていきます。
2. 基数変換の基礎知識
基数変換とは、ある基数で表現された数値を別の基数で表現し直すことを指します。2進数、8進数、10進数、16進数が一般的に使用されます。それぞれの基数に対して特定の変換ルールが存在します。
3. 2進数から各基数への変換
2進数から10進数への変換
各ビットの位置に対応する2の累乗を掛け、その総和を計算します。
例:2進数の110101
を10進数に変換する
1×2^5 + 1×2^4 + 0×2^3 + 1×2^2 + 0×2^1 + 1×2^0
= 32 + 16 + 0 + 4 + 0 + 1
= 53
2進数から8進数への変換
2進数を3ビットずつグループに分け、それぞれを8進数に変換します。
例:2進数の110101
を8進数に変換する
-
110 101
(3ビットずつに分ける) -
110 = 6
,101 = 5
- 結果:
65
2進数から16進数への変換
2進数を4ビットずつグループに分け、それぞれを16進数に変換します。
例:2進数の110101
を16進数に変換する
-
0011 0101
(4ビットずつに分け、前に0を追加して0011 0101
とする) -
0011 = 3
,0101 = 5
- 結果:
35
4. 8進数から各基数への変換
8進数から10進数への変換
各桁に対応する8の累乗を掛け、その総和を計算します。
例:8進数の65
を10進数に変換する
6×8^1 + 5×8^0
= 48 + 5
= 53
8進数から2進数への変換
8進数の各桁を3ビットの2進数に変換します。
例:8進数の65
を2進数に変換する
-
6 = 110
,5 = 101
- 結果:
110101
8進数から16進数への変換
まず8進数を2進数に変換し、それを16進数に変換します。
例:8進数の65
を16進数に変換する
- 8進数の
65
を2進数に変換:110101
- 2進数の
110101
を4ビットに分け、前に0を追加して0011 0101
とする -
0011 = 3
,0101 = 5
- 結果:
35
5. 10進数から各基数への変換
10進数から2進数への変換
対象の数値を2で割り続け、その商と余りを記録します。
例:10進数の53
を2進数に変換する
- 53 ÷ 2 = 26 余り 1
- 26 ÷ 2 = 13 余り 0
- 13 ÷ 2 = 6 余り 1
- 6 ÷ 2 = 3 余り 0
- 3 ÷ 2 = 1 余り 1
- 1 ÷ 2 = 0 余り 1
余りを逆順に読むと、結果は110101
10進数から8進数への変換
対象の数値を8で割り続け、その商と余りを記録します。
例:10進数の53
を8進数に変換する
- 53 ÷ 8 = 6 余り 5
- 6 ÷ 8 = 0 余り 6
余りを逆順に読むと、結果は65
10進数から16進数への変換
対象の数値を16で割り続け、その商と余りを記録します。
例:10進数の255
を16進数に変換する
- 255 ÷ 16 = 15 余り 15 (F)
- 15 ÷ 16 = 0 余り 15 (F)
余りを逆順に読むと、結果はFF
6. 16進数から各基数への変換
16進数から10進数への変換
各桁に対応する16の累乗を掛け、その総和を計算します。
例:16進数の1A3
を10進数に変換する
1×16^2 + A×16^1 + 3×16^0
= 1×256 + 10×16 + 3
= 256 + 160 + 3
= 419
16進数から2進数への変換
16進数の各桁を4ビットの2進数に変換します。
例:16進数のD5
を2進数に変換する
-
D = 1101
,5 = 0101
- 結果:
11010101
16進数から8進数への変換
まずそれを10進数に変換し、その後8進数に変換します。
例:16進数のD5
を8進数に変換する
- 16進数の
D5
を10進数に変換:213
- 10進数の
213
を8進数に変換 - 結果:
325
7. 基数変換における少数の取り扱い
少数を含む基数変換は、整数部分と少数部分を別々に変換する必要があります。
10進数から2進数への変換(少数を含む)
例:10進数の53.625
を2進数に変換する
- 整数部分:
53
を2進数に変換すると110101
- 少数部分:
- 0.625 × 2 = 1.25 → 整数部分は
1
- 0.25 × 2 = 0.5 → 整数部分は
0
- 0.5 × 2 = 1.0 → 整数部分は
1
- 結果として、少数部分は
101
- 0.625 × 2 = 1.25 → 整数部分は
整数部分と少数部分を組み合わせると、53.625
の2進数表記は110101.101
となります。
2進数から10進数への変換(少数を含む)
例:2進数の110101.101
を10進数に変換する
-
整数部分:
1×2^5 + 1×2^4 + 0×2^3 + 1×2^2 + 0×2^1 + 1×2^0 = 32 + 16 + 0 + 4 + 0 + 1 = 53
-
少数部分:
1×2^-1 + 0×2^-2 + 1×2^-3 = 0.5 + 0 + 0.125 = 0.625
整数部分と少数部分を組み合わせると、110101.101
の10進数表記は53.625
となります。
10進数から16進数への変換(少数を含む)
例:10進数の123.75
を16進数に変換する
- 整数部分:
123
を16進数に変換すると7B
- 少数部分:
- 0.75 × 16 = 12.0 → 整数部分は
C
- 結果として、少数部分は
C
- 0.75 × 16 = 12.0 → 整数部分は
整数部分と少数部分を組み合わせると、123.75
の16進数表記は7B.C
となります。
16進数から10進数への変換(少数を含む)
例:16進数の7B.C
を10進数に変換する
-
整数部分:
7×16^1 + B×16^0 = 7×16 + 11×1 = 112 + 11 = 123
-
少数部分:
C×16^-1 = 12×(1/16) = 12×0.0625 = 0.75
整数部分と少数部分を組み合わせると、7B.C
の10進数表記は123.75
となります。
8. よくある基数変換問題とその解き方
問題1:2進数の1101.101
を10進数および8進数に変換してください。
解法:
- 10進数:
- 整数部分:
1101
を10進数に変換すると13
- 少数部分:
0.101
を10進数に変換すると0.625
- 結果は
13.625
- 整数部分:
- 8進数:
- 2進数の
1101.101
を3ビットずつグループに分ける(001 101 .101
) - 整数部分:
001 = 1
,101 = 5
- 少数部分:
101 = 5
- 結果は
15.5
- 2進数の
問題2:16進数の2F3
を2進数および10進数に変換してください。
解法:
- 2進数:
2 = 0010
F = 1111
3 = 0011
結果は001011110011
-
10進数:
2×16^2 + F×16^1 + 3×16^0 = 2×256 + 15×16 + 3 = 512 + 240 + 3 = 755
9. まとめ
基数変換は、基本情報技術者試験における重要な計算問題の一つです。
この記事が皆さんの勉強に役立つことを願っています。最後までご覧いただきありがとうございました!