ホーム / 2進数・16進数が分かると資格試験にも強くなる

2進数・16進数が分かると資格試験にも強くなる

基本情報技術者試験をはじめ、IT資格の定番テーマ「進数変換」の考え方を整理します。

電卓が使えない試験で、進数の壁に当たったことはないか

進数変換は暗記科目ではなく、「2進数4桁=16進数1桁」という対応さえ体に入れば、試験で問われる大半はその場で解ける分野です。基数変換・補数・シフト演算という頻出3テーマも、この対応関係を土台にすると別々の暗記ではなく一続きの理解になります。

そして、ここで身につく感覚は試験だけのものではありません。色コード、ファイルのバイト表示、権限の数値表記など、実務で目にする数字の意味がそのまま読めるようになります。

なぜコンピュータは2進数なのか

コンピュータの回路は「電圧が高い」「低い」の2つの状態しか安定して扱えません。この2状態をそのまま1と0に対応させたのが2進数です。8進数・16進数は、2進数を人間が読みやすいようにまとめた表記で、特に16進数は2進数4桁(0000〜1111)をちょうど1文字(0〜F)で表せるため、メモリアドレスや色コードなど実務で幅広く使われています。

「なぜわざわざ16進数を使うのか」は、桁数を見ると納得できます。1バイト(8ビット)を2進数で書くと 11111111 と8桁ですが、16進数なら FF の2桁で済みます。しかも4桁ずつ機械的に区切るだけで相互変換できるため、10進数のように割り算をしなくてよいのです。人間が読み書きしやすく、かつ2進数との対応が崩れない——この2点が16進数が選ばれる理由です。

まず覚えるのは4桁の対応表だけ

進数変換の計算が速い人は、暗算が得意なのではなく、次の対応を覚えているだけです。

2進数16進2進数16進
0000010008
0001110019
001021010A
001131011B
010041100C
010151101D
011061110E
011171111F

この16行が入っていれば、11010110 のような値も「1101」「0110」に区切って D6 と即答できます。10進数を経由する必要はありません。逆方向も同じで、3F なら「3=0011」「F=1111」で 00111111 です。

10進数との変換だけは割り算が要りますが、こちらも「2で割った余りを下から並べる」という手順を1つ覚えるだけです。全部覚えようとせず、まず上の表、次に割り算の手順、という順序で進めるのが結局いちばん速く定着します。

資格試験でよく問われるパターン

出題テーマポイント
基数変換2進⇔10進⇔16進の相互変換。2で割った余りを並べる/16進は4桁ずつ区切る、が基本手順。
補数表現負の数を2進数でどう表すか(2の補数)。「全ビット反転して+1」がよく問われます。
シフト演算左シフトは2倍、右シフトは1/2倍に相当(符号の扱いに注意)。

手順を覚えたら、こでっとの進数変換に同じ数値を入力して答え合わせをすると、計算ミスの癖に気づきやすくなります。

16進数は色コードにもつながる

Webでよく見る #FF0000 のような色コードも16進数です。赤・緑・青それぞれの強さを00〜FFの2桁で表しています。進数の感覚が身につくと、カラーコード変換で扱う値もすんなり読めるようになります。

もっと体系的に対策したい場合

進数変換は「慣れ」で伸びる分野なので、問題集を繰り返し解くのが王道です。試験全体を体系的に対策したい場合は、参考書やオンライン講座を使う方法もあります。

PR

基本情報技術者試験の参考書や、体系的に学べるプログラミングスクールの例です。

試験が終わってからも使う知識

進数の感覚は、資格を取ったあとの実務でそのまま効いてきます。代表的なのが次の3つです。

つまり進数変換は、試験のためだけに覚える独立した単元ではなく、この先いろいろな場面で顔を出す共通言語です。ここで丁寧にやっておくと、あとの学習が軽くなります。

つまずきやすい点

どれも「手順は分かっているのに間違える」タイプのミスなので、覚え直すより、解いた直後にこでっとの進数変換で答え合わせをして、自分がどこで転ぶかを見つけるほうが効きます。

よくある質問

コンピュータが2進数を使う理由は?

回路が安定して区別できる状態が「電圧が高い/低い」の2つだけだからです。この2状態を1と0に対応させたのが2進数です。3以上の状態を扱おうとすると、わずかな電圧のゆらぎで値を誤読するリスクが上がるため、確実性を優先して2状態が選ばれています。

基本情報技術者試験では進数変換のどんな問題が出ますか?

大きく3種類です。1つ目が基数変換(2進・10進・16進の相互変換)、2つ目が2の補数による負数表現、3つ目がシフト演算です。いずれも手順が決まっているので、繰り返し解いて手を慣らせば確実に得点できます。計算そのものより、桁数の指定や符号の扱いといった条件の読み落としで失点することが多い分野です。

16進数の色コード(#FF0000など)とは関係がありますか?

直接つながっています。#FF0000 は赤・緑・青の強さをそれぞれ00〜FFの16進2桁で表したもので、FFは10進数の255、つまり最大値です。進数の感覚があると「#808080は各成分が128だから中間のグレー」と読めるようになります。

電卓を使わずに計算できるようになる必要はありますか?

試験対策としては必要です。基本情報技術者試験のCBT方式では電卓が使えないため、手計算で解けることが前提になります。ただし実務では変換ツールを使って構いません。大事なのは値の意味が読めることで、計算そのものを速くすることが目的ではありません。

関連ツール