基本情報のn進数を完全攻略!2進数・16進数の変換もこれで完璧

「2進数とか16進数とか…数字のくせに何が何進んでるの?」と思ったことはありませんか?基本情報技術者試験の過去問を開いて「0b1010」や「0xFF」という表記が出てきた瞬間に「これ暗号じゃないか」と感じる人は少なくないと思います。

でも安心してください。n進数は”数え方のルールをちょっと変えただけ”の話です。仕組みさえ理解できれば、変換の計算は誰でもできます。この記事では基本情報のn進数(2進数・8進数・16進数)の意味と変換方法、試験で確実に得点するためのコツをひとつずつ丁寧に解説します。

この記事のポイント
  • n進数の意味と2進数・8進数・16進数の違いがわかる
  • n進数→10進数・10進数→n進数の変換が自分でできる
  • 16進数⇔2進数の高速変換テクニックが身につく
  • 試験に頻出するパターンを把握して得点源にできる
無料

基本情報技術者試験 過去問アプリ

本番形式で繰り返し解ける。スキマ時間に1問から

2,000問以上収録
無料で過去問を解く
目次

N進数の基礎知識と変換の仕組みを完全理解

2進数・16進数のコンピュータ画像

N進数とは?10進数との違いをやさしく解説

「n進数」とは、n種類の数字だけを使ってn個で桁が上がる数え方のことです。私たちが日常的に使っている「10進数」は0〜9の10種類を使い、9の次で桁が上がります(9→10)。これが10進数のルールです。

同じように考えると、2進数は「0と1の2種類だけを使い、1の次で桁が上がる」数え方です。つまり2進数の「1」の次は「10」になります。この「10」は2進数で”2″を意味しているんですね。

「基数」とは? 数を数えるときの”桁の底”になる数のことです。10進数の基数は10、2進数の基数は2、16進数の基数は16です。試験では「基数変換」という言葉で出題されることが多いです。

進数使う数字桁が上がるタイミング主な用途
2進数0, 11の次(1→10)コンピュータ内部処理
8進数0〜77の次(7→10)Unix系パーミッション等
10進数0〜99の次(9→10)日常生活
16進数0〜9, A〜FFの次(F→10)メモリアドレス・カラーコード

つまりどの進数も「桁の上がり方のルールが違うだけ」で、考え方の本質はまったく同じです。この感覚をまず掴んでおきましょう。

2進数・8進数・16進数それぞれの特徴と使いどころ

コンピュータは電気信号の「オン(1)」と「オフ(0)」だけで動いています。そのため、コンピュータの言語は2進数が基本です。ただし、2進数は桁数がすぐ長くなってしまうため、人間が読み書きしやすくする工夫として8進数・16進数が使われています。

  • 2進数:コンピュータが直接扱う言語。0と1の2種類のみ
  • 8進数:2進数3桁をまとめて1桁で表現。Unixのファイルパーミッション(例:755)などで登場
  • 16進数:2進数4桁をまとめて1桁で表現。メモリアドレスやHTMLカラーコード(#FF5733など)で頻用

特に16進数は2進数の「読みやすい略記法」と考えると理解が早まります。2進数4桁(0000〜1111)がちょうど16進数1桁(0〜F)に対応しているからです。この関係は後の変換テクニックでとても役立ちます。

16進数でA〜Fのアルファベットが使われるのは、10〜15を1文字で表すためです。10以上になると「10」と書いてしまうと「十」なのか「一と零」なのか区別できないため、アルファベットで代用しています。

N進数→10進数の変換(重み計算法)

n進数から10進数への変換は、各桁の数字に「その桁の重み(n の累乗)」を掛けて足し合わせるだけです。「重み計算法」と呼ばれる方法で、原理さえわかれば確実に計算できます。

例①:2進数「1011」を10進数に変換

桁(右から)重み(2の累乗)桁の数字計算
4桁目(左端)2³ = 811 × 8 = 8
3桁目2² = 400 × 4 = 0
2桁目2¹ = 211 × 2 = 2
1桁目(右端)2⁰ = 111 × 1 = 1
合計8 + 0 + 2 + 1 = 11

1011₂ = 11₁₀ となります。

例②:16進数「2A」を10進数に変換

16進数のAは10なので、「2A₁₆」は「2の桁が2、1の桁がA(=10)」と読みます。計算すると:2 × 16¹ + 10 × 16⁰ = 32 + 10 = 42₁₀ です。

コツ:右端の桁が「n⁰ = 1」の重み。桁が左に1つ移るたびにnを1回掛けます。「右から数えて何桁目か-1」が乗数になるので、まず右端の重みを「1」と決めて左に向かって×nしていくとスムーズです。

10進数→N進数の変換(割り算法)

今度は逆方向、10進数からn進数への変換です。「目標の基数で割り続けて、余りを下から読む」というシンプルな方法で変換できます。

STEP
変換したい10進数をnで割る

商と余りを記録する。商が0になるまで繰り返す。

STEP
余りを下から順に並べる

最後に出た余りが「最上位桁(左端)」になる。

例:13₁₀を2進数に変換

割り算余り
13 ÷ 261 ←最下位桁
6 ÷ 230
3 ÷ 211
1 ÷ 201 ←最上位桁

余りを下から読むと 1101₂。つまり 13₁₀ = 1101₂ です。

16進数への変換も同じ手順でOKです。余りが10以上になった場合はA〜Fに置き換えることを忘れずに。例えば余りが「10」ならば「A」、「15」ならば「F」と書きます。

2進数⇔16進数の高速変換テクニック

2進数と16進数の変換は、上で説明した「重み計算法」や「割り算法」を使わなくても、もっと速く変換できる方法があります。「2進数4桁=16進数1桁」という対応関係を使う方法です。

2進数(4桁)16進数10進数
000000
000111
001022
001133
010044
010155
011066
011177
100088
100199
1010A10
1011B11
1100C12
1101D13
1110E14
1111F15

使い方:2進数を右から4桁ずつ区切って、対応する16進数1文字に置き換えるだけ。

例:2進数「1010 1111」→ 右から4桁区切り → 1010 | 1111 → A | F → AF₁₆ これだけです!10進数を経由する必要がなく、試験本番でも素早く変換できます。

この対応表は丸暗記しなくても大丈夫です。「0〜7は2進数3桁と同じ」「8〜Fは前に1を付ける」と覚えると表なしでも思い出せます。試験当日は問題用紙の余白に対応表を書いてから解くのがおすすめです。

N進数を基本情報試験で確実に得点する勉強法

基本情報技術者試験の勉強

試験に頻出するN進数の出題パターン

基本情報技術者試験でn進数が問われるのは、主に科目A(旧午前問題)の計算問題です。出題パターンはほぼ決まっており、以下の3種類が繰り返し登場します。

パターン内容頻出度
基数変換2進数↔10進数↔16進数の相互変換★★★
2進数の加算2進数同士を足す計算(桁上がりに注意)★★☆
補数表現負の数を2の補数で表現する方法★★☆
シフト演算ビットを左右にずらす計算(n進数と組み合わせ)★★★
16進数の四則演算16進数同士の足し算・引き算★☆☆

特に「基数変換」と「シフト演算」の組み合わせ問題は頻出です。n進数の変換を確実にマスターしておくと、シフト演算の問題でも得点源にできます。

過去問を確認すると、基数変換は3〜4問に1問程度の割合で出題されています。科目Aの合格ラインは60点(600点満点)なので、n進数の計算問題を確実に取るだけでも合格に大きく近づきます。

計算ミスを防ぐ!チェックポイント一覧

n進数の問題は「仕組みはわかったのに計算ミスをしてしまう」ケースが多いです。以下のチェックポイントを意識するだけでミスを大幅に減らせます。

  • 重み計算のとき、右端の桁の重みを「n⁰ = 1」と確認してから始める
  • 16進数のA〜Fは10〜15として計算する(Aを単純に「10」と読み間違えない)
  • 割り算法で余りを書くとき、上から順番に並べず「下から読む」を忘れない
  • 2進数⇔16進数の変換で4桁区切りにするとき、左端が4桁未満なら0を補って揃える
  • 問題文の進数表記(₂や₁₆など)を見落とさない(どの進数かを確認してから解く)

特に多いミスが「右から割り算して余りを上から読んでしまう」パターンです。割り算の結果を縦に並べたとき、最後に出た余りが「最上位桁=左端」になります。読む方向を間違えると答えが全然違う数になるので注意してください。

ビット演算との組み合わせ問題の攻略法

n進数の次のステップとして押さえたいのがシフト演算です。シフト演算は「2進数のビット列を左右にずらす操作」で、n進数の変換を理解していれば自然に理解できます。

たとえば「左に1ビットシフトする」とは、2進数の各桁を1つ左に移動することです。例えば「0101₂(=5₁₀)」を左に1ビットシフトすると「1010₂(=10₁₀)」になります。これは10進数で「2倍になった」ことを意味します。

操作効果例(0101₂ = 5₁₀)
左シフト×12倍1010₂ = 10₁₀
左シフト×24倍10100₂ = 20₁₀
右シフト×11/2倍(切り捨て)0010₂ = 2₁₀

シフト演算はn進数の理解と直結しているので、変換が得意になった後はぜひセットで学習しておきましょう。シフト演算の詳しい解説はこちらでも確認できます。

過去問で狙われる変換パターン総まとめ

基本情報技術者試験でn進数の問題を解くとき、以下の変換パターンをスムーズにこなせれば得点を落とすことはほぼありません。頻出パターンを一覧で確認しておきましょう。

変換パターン手法ポイント
2進数 → 10進数重み計算法右端の重みは2⁰=1
10進数 → 2進数割り算法(÷2)余りを下から読む
16進数 → 10進数重み計算法A〜F=10〜15として計算
10進数 → 16進数割り算法(÷16)余りが10以上はA〜Fに変換
2進数 → 16進数4桁区切り対応法右から4桁ずつ区切る
16進数 → 2進数4桁区切り対応法16進数1桁を2進数4桁に展開

この表をしっかり頭に入れた上で、過去問を使って実際に手を動かして練習するのが一番の近道です。計算問題全般の攻略法については、基本情報の計算問題攻略ガイドもあわせて読んでみてください。

まとめ:N進数マスターへの最短ルート

基本情報のn進数は、仕組みを理解すれば計算自体は決して難しくありません。重み計算法・割り算法・4桁区切り変換の3つさえマスターすれば、どのパターンが出ても対応できます。

N進数 最短マスター3ステップ
  • まず「重み計算法」でn進数→10進数の変換を5問練習する
  • 次に「割り算法」で10進数→2進数・16進数の変換を5問練習する
  • 最後に「4桁区切り変換」で2進数⇔16進数を瞬時に変換できるようにする

n進数の変換に慣れたら、次は算術演算(加算・減算・乗算)の学習に進みましょう。n進数の理解が土台になっているので、きっとスムーズに進めます。

n進数と基数変換は同じものですか?

「基数変換」とは、n進数で書かれた数値を別の進数に変換することです。つまり基数変換はn進数を扱う操作の総称で、「2進数→10進数に変換する」のも「16進数→2進数に変換する」のも、すべて基数変換です。試験では「基数変換」という言葉で出題されることがほとんどです。

16進数のA〜Fはどうやって暗記すればいいですか?

「10=A、11=B、…、15=F」と覚えるのが基本ですが、A〜Fは「10進数の10〜15のアルファベット略記」と理解すると自然に身につきます。試験本番では対応表を問題用紙の余白に書いてから解き始めるとミスを防げます。

8進数はどんなときに使われますか?

現代のプログラミングでは8進数を直接使う場面は少ないですが、Unixシステムのファイルパーミッション(755、644など)が代表例です。試験でも「2進数⇔8進数の変換(3桁区切り)」が問われることがあります。8進数は2進数3桁=8進数1桁という対応で変換できます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次