7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【基本情報技術者試験】基数変換問題を徹底攻略

Last updated at Posted at 2024-08-01

目次

  1. はじめに
  2. 基数変換の基礎知識
  3. 2進数から各基数への変換
  4. 8進数から各基数への変換
  5. 10進数から各基数への変換
  6. 16進数から各基数への変換
  7. 基数変換における少数の取り扱い
  8. よくある基数変換問題とその解き方
  9. まとめ

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進数に変換する

  1. 110 101(3ビットずつに分ける)
  2. 110 = 6, 101 = 5
  3. 結果:65

2進数から16進数への変換

2進数を4ビットずつグループに分け、それぞれを16進数に変換します。

:2進数の110101を16進数に変換する

  1. 0011 0101(4ビットずつに分け、前に0を追加して0011 0101とする)
  2. 0011 = 3, 0101 = 5
  3. 結果: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進数に変換する

  1. 6 = 110, 5 = 101
  2. 結果:110101

8進数から16進数への変換

まず8進数を2進数に変換し、それを16進数に変換します。

:8進数の65を16進数に変換する

  1. 8進数の65を2進数に変換:110101
  2. 2進数の110101を4ビットに分け、前に0を追加して0011 0101とする
  3. 0011 = 3, 0101 = 5
  4. 結果:35

5. 10進数から各基数への変換

10進数から2進数への変換

対象の数値を2で割り続け、その商と余りを記録します。

:10進数の53を2進数に変換する

  1. 53 ÷ 2 = 26 余り 1
  2. 26 ÷ 2 = 13 余り 0
  3. 13 ÷ 2 = 6 余り 1
  4. 6 ÷ 2 = 3 余り 0
  5. 3 ÷ 2 = 1 余り 1
  6. 1 ÷ 2 = 0 余り 1

余りを逆順に読むと、結果は110101

10進数から8進数への変換

対象の数値を8で割り続け、その商と余りを記録します。

:10進数の53を8進数に変換する

  1. 53 ÷ 8 = 6 余り 5
  2. 6 ÷ 8 = 0 余り 6

余りを逆順に読むと、結果は65

10進数から16進数への変換

対象の数値を16で割り続け、その商と余りを記録します。

:10進数の255を16進数に変換する

  1. 255 ÷ 16 = 15 余り 15 (F)
  2. 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進数に変換する

  1. D = 1101, 5 = 0101
  2. 結果:11010101

16進数から8進数への変換

まずそれを10進数に変換し、その後8進数に変換します。

:16進数のD5を8進数に変換する

  1. 16進数のD5を10進数に変換:213
  2. 10進数の213を8進数に変換
  3. 結果:325

7. 基数変換における少数の取り扱い

少数を含む基数変換は、整数部分と少数部分を別々に変換する必要があります。

10進数から2進数への変換(少数を含む)

:10進数の53.625を2進数に変換する

  1. 整数部分:53を2進数に変換すると110101
  2. 少数部分:
    1. 0.625 × 2 = 1.25 → 整数部分は1
    2. 0.25 × 2 = 0.5 → 整数部分は0
    3. 0.5 × 2 = 1.0 → 整数部分は1
    4. 結果として、少数部分は101

整数部分と少数部分を組み合わせると、53.625の2進数表記は110101.101となります。

2進数から10進数への変換(少数を含む)

:2進数の110101.101を10進数に変換する

  1. 整数部分:

    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. 少数部分:

    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進数に変換する

  1. 整数部分:123を16進数に変換すると7B
  2. 少数部分:
    1. 0.75 × 16 = 12.0 → 整数部分はC
    2. 結果として、少数部分はC

整数部分と少数部分を組み合わせると、123.75の16進数表記は7B.Cとなります。

16進数から10進数への変換(少数を含む)

:16進数の7B.Cを10進数に変換する

  1. 整数部分:

    7×16^1 + B×16^0
    = 7×16 + 11×1
    = 112 + 11
    = 123
    
  2. 少数部分:

    C×16^-1
    = 12×(1/16)
    = 12×0.0625
    = 0.75
    

整数部分と少数部分を組み合わせると、7B.Cの10進数表記は123.75となります。

8. よくある基数変換問題とその解き方

問題1:2進数の1101.101を10進数および8進数に変換してください。

解法

  • 10進数:
    1. 整数部分:1101を10進数に変換すると13
    2. 少数部分:0.101を10進数に変換すると0.625
    3. 結果は13.625
  • 8進数:
    1. 2進数の1101.101を3ビットずつグループに分ける(001 101 .101
    2. 整数部分:001 = 1, 101 = 5
    3. 少数部分:101 = 5
    4. 結果は15.5

問題2:16進数の2F3を2進数および10進数に変換してください。

解法

  • 2進数:
    1. 2 = 0010
    2. F = 1111
    3. 3 = 0011

結果は001011110011

  • 10進数:

    2×16^2 + F×16^1 + 3×16^0
    = 2×256 + 15×16 + 3
    = 512 + 240 + 3
    = 755
    

9. まとめ

基数変換は、基本情報技術者試験における重要な計算問題の一つです。

この記事が皆さんの勉強に役立つことを願っています。最後までご覧いただきありがとうございました!

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?